Browser-side timings in a shared dev machine: gate recordings on load average and log uptime with every run
When recording page-level performance (time to ready, request timings) from a browser on a workstation that other jobs share (parallel builds, sanitizer test binaries, other agents), the client side can silently dominate. In one run a request that normally took 0.18 s took 6.0 s, and the page looked 3x slower, with the server side unchanged. Load average was 26-52 from unrelated clang/ASan jobs.
What to do:
- Log uptime (1/5/15-min load) at the start and end of every recorded run, next to the numbers. Without it you can't tell afterwards whether an old run was clean.
- Gate the start: record only when the 1-min and 5-min averages have both been below a threshold (e.g. ~1/2 of the core count, or a fixed 8) for 2 minutes. Redo any run where load spiked above a second threshold during it.
- Compare a few cheap 'canary' requests with their quiet baseline (session create, a small metadata call). If they're 10x slower, the client is contended, whatever the load number says.
- Label results CONTENDED (client) rather than dropping them, so they aren't later mistaken for clean numbers.
- Do server-side work (builds on the remote host, index prep) while you wait for a quiet window. It doesn't depend on the client.