Files
HealthLog/scripts/bench/results/v1.44.0-baseline.md
T
Marc-André Bombeck 9bdd0b1a60 perf(bench): record the baseline on the v1.44.0 runtime
One run of scripts/bench/run.ts against the seeded account (1,266,549
measurement rows, anchor 2026-10-22), 20 measured requests per row after 3
warm-up requests, web-only production build, 792 MB heap ceiling, Postgres
16.15. The commit adds only lint rules, guards, tests and scripts on top of
v1.44.0, so the server code measured is the v1.44.0 code.

Cold (caches evicted before each request), p95 and statements per request:
/api/auth/me 17 ms / 19, dashboard summary 233 ms / 31, dashboard snapshot
2253 ms / 158, pulse series 30 d 59 ms / 8, 365 d 311 ms / 8, 3650 d
2118 ms / 8, day view 78 ms / 49, insights health status 140 ms / 68,
correlations 105 ms / 45. Warm, the snapshot is 24 ms / 13 and the 3650-day
series still 1506 ms, since that read is not cached. The 5,000-row batch
ingest took 1722 ms and 424 statements over ten requests.

The machine was shared with other work during the run (load average 8 to
20), so latency is indicative; the statement counts do not depend on it.
The results directory is written by the script and left out of prettier,
so a re-run diffs cleanly.
2026-10-22 05:55:38 +02:00

1.7 KiB

Benchmark v1.44.0-baseline

Commit d640eea32, 2026-10-22T03:54:05.746Z. 1266549 measurement rows on the bench account, 20 measured requests per row after 3 warm-up requests, one at a time. Server: production build, web process, heap ceiling 792 MB. Postgres 16.15, 14 cores, load average 9.4,20.1,20 at the end. Idle background: 0 statements/s.

Request Mode n p50 ms p95 ms max ms statements (median) statements (max)
/api/auth/me cold 20 12.1 17.4 18.4 19 19
/api/auth/me warm 20 16.6 22.2 24.4 19 19
dashboard summary cold 20 205.6 233.2 275.3 31 32
dashboard summary warm 20 12.8 14.3 27.5 7 7
dashboard snapshot cold 20 2157.8 2252.7 2292.9 158 161
dashboard snapshot warm 20 15.6 23.5 25.6 13 16
series pulse 30 d cold 20 50.8 58.7 58.9 8 9
series pulse 30 d warm 20 52.3 59.5 59.9 8 8
series pulse 365 d cold 20 289 311.3 363.7 8 9
series pulse 365 d warm 20 274.3 355.8 366.8 8 8
series pulse 3650 d cold 20 1502.6 2117.6 2122.9 8 9
series pulse 3650 d warm 20 1490.3 1505.5 1555.2 8 11
day view cold 20 61.7 77.5 86.1 49 50
day view warm 20 49 55.6 62.5 48 48
insights health status cold 20 124.1 139.5 141.5 68 68
insights health status warm 20 124.7 157.8 165.3 68 68
insights correlations cold 20 95.4 105 108.8 45 45
insights correlations warm 20 13 15.4 15.9 8 8
batch ingest 5k (per 500) write 10 163 220.7 220.7 42 45