repositories / pi-ext
pi-ext
bugabingas pi extensions
owned by admin
extensions/footer/__bench__/render.bench.ts
Rawimport { cpus } from "node:os";
import type {
ExtensionAPI,
ExtensionContext,
Theme,
} from "@earendil-works/pi-coding-agent";
import footerExtension from "../index.ts";
const ROUNDS = 12;
const MINIMUM_ROUND_NS = 200_000_000;
const WIDE_COLUMNS = 160;
const NARROW_COLUMNS = 72;
const handlers = new Map<string, Array<(data: unknown) => void>>();
let footer: { render(width: number): string[]; dispose?(): void } | undefined;
let sink = 0;
const theme = {
fg: (_color: string, text: string) => `\x1b[38;5;245m${text}\x1b[39m`,
getFgAnsi: () => "\x1b[38;5;245m",
} as Theme;
const statuses = new Map([
["mode", "review"],
["queue", "2 queued"],
]);
const footerData = {
getExtensionStatuses: () => statuses,
onBranchChange: () => () => {},
};
const tui = {
requestRender: () => {
sink ^= 1;
},
};
const ui = {
setFooter: (factory: unknown) => {
footer?.dispose?.();
footer = (
factory as (
tui: typeof tui,
theme: Theme,
data: typeof footerData,
) => typeof footer
)(tui, theme, footerData);
},
notify: () => {},
};
const pi = {
events: {
on: (name: string, handler: (data: unknown) => void) => {
handlers.set(name, [...(handlers.get(name) ?? []), handler]);
},
emit: (name: string, data: unknown) => {
for (const handler of handlers.get(name) ?? []) handler(data);
},
},
on: (
name: string,
handler: (event: unknown, ctx: ExtensionContext) => void,
) => {
handlers.set(name, [
...(handlers.get(name) ?? []),
(data) => handler(data, context),
]);
},
registerCommand: () => {},
registerShortcut: () => {},
} as unknown as ExtensionAPI;
const context = {
hasUI: true,
mode: "tui",
ui,
sessionManager: { getSessionName: () => "footer performance" },
} as unknown as ExtensionContext;
function emit(name: string, data: unknown): void {
for (const handler of handlers.get(name) ?? []) handler(data);
}
function segment(data: Record<string, unknown>): void {
emit("footer:segment", data);
}
function consume(lines: string[]): void {
sink ^= lines.length;
for (const line of lines) sink ^= line.length;
}
function render(width: number): void {
if (!footer) throw new Error("footer did not mount");
consume(footer.render(width));
}
function benchmark(name: string, operation: () => void): void {
for (let index = 0; index < 3; 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 warmup = 0; warmup < 3; warmup++) {
for (let index = 0; index < iterations; index++) operation();
}
for (let round = 0; round < ROUNDS; round++) {
(globalThis as { gc?: () => void }).gc?.();
const started = process.hrtime.bigint();
for (let index = 0; index < iterations; index++) operation();
const elapsed = Number(process.hrtime.bigint() - started);
console.log(
`Benchmark${name}-${cpus().length}\t${iterations}\t${(elapsed / iterations).toFixed(0)} ns/op`,
);
}
}
footerExtension(pi);
segment({
id: "cwd",
text: "~/Workspace/dotfiles/pi-ext",
zone: "workspace",
order: 0,
});
segment({ id: "vcs", text: "trunk +3 !2", zone: "workspace", order: 1 });
segment({ id: "runtime", text: "node 26.8.2", zone: "workspace", order: 3 });
segment({
id: "provider",
text: "",
icon: "",
zone: "llm",
group: "model-route",
order: -0.5,
});
segment({
id: "subscription",
text: "",
icon: "",
color: "success",
zone: "llm",
group: "model-route",
gap: 2,
order: -0.25,
});
segment({
id: "model",
text: "sol:medium",
color: "syntaxKeyword",
zone: "llm",
group: "model-route",
gap: 2,
order: 0,
});
segment({
id: "fast",
text: "",
icon: "",
color: "warning",
zone: "llm",
group: "model-route",
order: 0.5,
});
segment({
id: "angel",
text: "astra:max",
icon: "",
color: "accent",
zone: "llm",
group: "model-route",
separator: "→",
order: 0.75,
});
segment({
id: "context-size",
text: "112k/200k",
variants: ["56%", "112k"],
bar: 56,
suffix: "56%",
zone: "llm",
order: 1,
});
segment({
id: "tokens",
text: "↑18.2k ↓4.1k 82%",
zone: "llm",
order: 2,
});
segment({
id: "cost",
text: "$0.42 · Σ$9.71 · $2624.8",
color: "success",
zone: "llm",
order: 3,
});
segment({
id: "quota:openai-codex",
text: "2h 74% · week 61%",
icon: "●",
zone: "llm",
order: 4,
});
segment({ id: "tps", text: " 78.4/s", zone: "llm", order: 4 });
emit("session_start", { type: "session_start", reason: "startup" });
console.log(`goos: ${process.platform}`);
console.log(`goarch: ${process.arch}`);
console.log("pkg: pi-ext/footer");
benchmark("RenderWide", () => render(WIDE_COLUMNS));
benchmark("RenderNarrow", () => render(NARROW_COLUMNS));
let update = 0;
benchmark("UpdateAndRender", () => {
segment({
id: "tps",
text: ` ${(70 + (update++ % 100) / 10).toFixed(1)}/s`,
zone: "llm",
order: 4,
});
render(WIDE_COLUMNS);
});
emit("session_shutdown", { type: "session_shutdown", reason: "quit" });
if (sink === 42) console.error(sink);