Download packages/coding-agent/src/core/timings.ts from SaylorTwift/pi: direct link, hf CLI and curl.
- Browser
- Download file 1.58 kB
-
https://huggingface.co/SaylorTwift/pi/resolve/main/packages/coding-agent/src/core/timings.ts
- Command line
-
hf download hf://SaylorTwift/pi/packages/coding-agent/src/core/timings.ts
-
curl -L -o timings.ts https://huggingface.co/SaylorTwift/pi/resolve/main/packages/coding-agent/src/core/timings.ts
1.58 kB
| /** | |
| * Central timing instrumentation for startup profiling. | |
| * Enable with PI_TIMING=1 environment variable. | |
| */ | |
| const ENABLED = process.env.PI_TIMING === "1"; | |
| interface TimingNamespace { | |
| timings: Array<{ label: string; ms: number }>; | |
| lastTime: number; | |
| } | |
| type TimingLabel = "main" | "extensions"; | |
| const timingNamespaces = new Map<TimingLabel, TimingNamespace>(); | |
| export function resetTimings(namespace: TimingLabel = "main"): void { | |
| if (!ENABLED) return; | |
| timingNamespaces.set(namespace, { timings: [], lastTime: Date.now() }); | |
| } | |
| export function time(label: string, namespace: TimingLabel = "main"): void { | |
| if (!ENABLED) return; | |
| const now = Date.now(); | |
| if (!timingNamespaces.has(namespace)) { | |
| resetTimings(namespace); | |
| } | |
| const timingNamespace = timingNamespaces.get(namespace)!; | |
| timingNamespace.timings.push({ label, ms: now - timingNamespace.lastTime }); | |
| timingNamespace.lastTime = now; | |
| } | |
| function printTimingGroup(title: string, timings: TimingNamespace["timings"]): void { | |
| const printableTimings = timings.filter((timing) => timing.ms >= 0); | |
| if (printableTimings.length === 0) return; | |
| console.error(`\n--- ${title} ---`); | |
| for (const t of printableTimings) { | |
| console.error(` ${t.label}: ${t.ms}ms`); | |
| } | |
| console.error(` TOTAL: ${printableTimings.reduce((a, b) => a + b.ms, 0)}ms`); | |
| console.error(`${"-".repeat(title.length + 8)}\n`); | |
| } | |
| export function printTimings(): void { | |
| if (!ENABLED) return; | |
| for (const [namespace, timingNamespace] of timingNamespaces) { | |
| printTimingGroup(`Startup Timings: ${namespace}`, timingNamespace.timings); | |
| } | |
| } | |