import type { BashSpawnContext } from "@earendil-works/pi-coding-agent"; import { __test } from "../index.ts"; const ROUNDS = Number(process.env.UV_BENCH_ROUNDS ?? 12); const MINIMUM_ROUND_NS = Number( process.env.UV_BENCH_MINIMUM_ROUND_NS ?? 200_000_000, ); let sink = 0; const env = Object.fromEntries( Array.from({ length: 100 }, (_, index) => [`UV_BENCH_${index}`, `${index}`]), ); env.PATH = process.env.PATH ?? ""; const context = { command: "git status", cwd: process.cwd(), env, } as BashSpawnContext; function benchmark(name: string, operation: () => void): void { for (let index = 0; index < 1_000; index++) operation(); let iterations = 1; while (true) { const started = process.hrtime.bigint(); for (let index = 0; index < iterations; index++) operation(); if (Number(process.hrtime.bigint() - started) >= MINIMUM_ROUND_NS) break; iterations *= 2; } for (let round = 0; round < ROUNDS; round++) { const started = process.hrtime.bigint(); for (let index = 0; index < iterations; index++) operation(); const elapsed = Number(process.hrtime.bigint() - started); console.log( `Benchmark${name}\t${iterations}\t${(elapsed / iterations).toFixed(0)} ns/op`, ); } } if (!Number.isInteger(ROUNDS) || ROUNDS < 1) throw new Error("UV_BENCH_ROUNDS must be a positive integer"); if (!Number.isFinite(MINIMUM_ROUND_NS) || MINIMUM_ROUND_NS < 1) throw new Error("UV_BENCH_MINIMUM_ROUND_NS must be positive"); console.log(`goos: ${process.platform}`); console.log(`goarch: ${process.arch}`); console.log("pkg: pi-ext/uv"); benchmark("AllowedCommand", () => { sink ^= __test.getBlockedCommandMessage("git status")?.length ?? 0; }); benchmark("BlockedPython", () => { sink ^= __test.getBlockedCommandMessage("python -m pip install rich")?.length ?? 0; }); benchmark("PrependPath100Env", () => { const rewritten = __test.prependInterceptedCommands( context, process.platform, ); sink ^= rewritten.env.PATH?.length ?? 0; }); if (sink === 42) console.error(sink);