removing aux funcs for benchmarking
Leftover functions I was using the benchmark and time CLI calls
This commit is contained in:
committed by
Peter Steinberger
parent
97971f3aef
commit
fac0110e49
@@ -1,88 +0,0 @@
|
||||
import { isTruthyEnvValue } from "./env.js";
|
||||
|
||||
type CliTimingEntry = {
|
||||
label: string;
|
||||
ms: number;
|
||||
};
|
||||
|
||||
type CliTimingPayload = {
|
||||
type: "clawdbot.cli.timing";
|
||||
pid: number;
|
||||
entries: CliTimingEntry[];
|
||||
extra?: Record<string, unknown> | null;
|
||||
};
|
||||
|
||||
const enabled = isTruthyEnvValue(process.env.CLAWDBOT_CLI_TIMING);
|
||||
let emitted = false;
|
||||
let disabled = false;
|
||||
|
||||
const startNs = (() => {
|
||||
if (!enabled) return 0n;
|
||||
const envStart = process.env.CLAWDBOT_CLI_START_NS;
|
||||
if (envStart) {
|
||||
try {
|
||||
return BigInt(envStart);
|
||||
} catch {
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
const now = process.hrtime.bigint();
|
||||
process.env.CLAWDBOT_CLI_START_NS = String(now);
|
||||
return now;
|
||||
})();
|
||||
|
||||
const marks: Array<{ label: string; ns: bigint }> = [];
|
||||
|
||||
const toMs = (ns: bigint) => Number(ns) / 1_000_000;
|
||||
|
||||
const buildEntries = (endNs: bigint): CliTimingEntry[] => {
|
||||
const entries: CliTimingEntry[] = [{ label: "start", ms: 0 }];
|
||||
for (const mark of marks) {
|
||||
entries.push({ label: mark.label, ms: toMs(mark.ns - startNs) });
|
||||
}
|
||||
entries.push({ label: "end", ms: toMs(endNs - startNs) });
|
||||
return entries;
|
||||
};
|
||||
|
||||
const emitTiming = (extra?: Record<string, unknown> | null) => {
|
||||
if (!enabled || emitted || disabled) return;
|
||||
emitted = true;
|
||||
const endNs = process.hrtime.bigint();
|
||||
const payload: CliTimingPayload = {
|
||||
type: "clawdbot.cli.timing",
|
||||
pid: process.pid,
|
||||
entries: buildEntries(endNs),
|
||||
extra: extra ?? null,
|
||||
};
|
||||
try {
|
||||
process.stderr.write(`${JSON.stringify(payload)}\n`);
|
||||
} catch {
|
||||
// ignore timing failures
|
||||
}
|
||||
};
|
||||
|
||||
if (enabled) {
|
||||
process.once("exit", () => {
|
||||
emitTiming({ exitCode: process.exitCode ?? 0 });
|
||||
});
|
||||
}
|
||||
|
||||
export function getCliTiming(): {
|
||||
mark: (label: string) => void;
|
||||
emit: (extra?: Record<string, unknown> | null) => void;
|
||||
} | null {
|
||||
if (!enabled || disabled) return null;
|
||||
return {
|
||||
mark: (label: string) => {
|
||||
if (!enabled || disabled) return;
|
||||
marks.push({ label, ns: process.hrtime.bigint() });
|
||||
},
|
||||
emit: (extra?: Record<string, unknown> | null) => {
|
||||
emitTiming(extra);
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
export function disableCliTiming(): void {
|
||||
disabled = true;
|
||||
}
|
||||
Reference in New Issue
Block a user