hermes-agent/apps/desktop/scripts/perf/baseline.json
brooklyn! 3345b3cdfd
bench(desktop): make --spawn work + capture a real baseline (#67670)
- Resolve the vite CLI via vite/package.json `bin` (Vite 8's exports block
  importing vite/bin/vite.js directly — --spawn failed with ERR_PACKAGE_PATH_NOT_EXPORTED).
- Add a post-launch settle so cold-start contention (vite dep pre-bundling,
  first backend-connect attempts) doesn't contaminate the first scenario.
- Drop the raw autolink from the default stream chunk (resolvable URLs trigger
  link-embed DNS lookups unrelated to render cost).
- Replace seed baseline with real numbers from a darwin-arm64 --spawn run.
  keystroke + transcript are clean; stream is a clean single-run capture (the
  isolated backend may not connect, and its reconnect churn inflates frame
  pacing — re-capture on a connected instance for tighter tolerances).
2026-07-19 15:37:35 -05:00

38 lines
1.3 KiB
JSON

{
"_meta": {
"note": "Captured on darwin-arm64 via `npm run perf -- --spawn`. keystroke + transcript are clean medians. stream = a clean single-run capture; under --spawn the isolated backend may not connect, and its reconnect churn inflates frame-pacing, so re-capture stream on a backend-CONNECTED instance (perf:serve against a live profile, or attach) for tighter tolerances. Re-baseline with `npm run perf -- --update-baseline`.",
"platform": "darwin-arm64",
"node": null,
"updated": "2026-07-19"
},
"scenarios": {
"stream": {
"tolerance": { "tolFrac": 0.6, "tolAbs": 5 },
"metrics": {
"longtasks_n": 2,
"longtask_max_ms": 97,
"frame_p95_ms": 18.4,
"frame_p99_ms": 28.5,
"slow_frames_33": 4,
"intermut_p95_ms": 37.1
}
},
"keystroke": {
"tolerance": { "tolFrac": 0.6, "tolAbs": 4 },
"metrics": {
"keystroke_p50_ms": 2.7,
"keystroke_p95_ms": 9.9,
"keystroke_p99_ms": 17.7,
"keystroke_slow_16": 2
}
},
"transcript": {
"tolerance": { "tolFrac": 0.75, "tolAbs": 40 },
"metrics": {
"transcript_mount_ms": 287.3,
"transcript_longtask_ms": 559,
"transcript_longtask_max_ms": 295
}
}
}
}