Files
HealthLog/scripts/bench/results/v1.45.0-boot.md
T
Marc-André Bombeck a451a114a2 docs(bench): record the boot profile and the runtime results
The profile section in docs/contributing/benchmarks.md says how to run
scripts/bench/boot-profile.ts, what the profile of the v1.44 runtime
found (the worker graph as one 753 ms block, a live heap of about
165 MB of which the query compiler holds 50 and the catalogs 33) and what
changed. scripts/bench/results/v1.45.0-*.md hold the before and after
numbers per area, from back-to-back runs on the same machine. The size
baselines take the lowered numbers.
2026-10-22 09:10:14 +02:00

1.6 KiB

v1.45.0: boot and idle memory

scripts/bench/boot-profile.ts, production build, every role, heap ceiling 792 MB, against the seeded account, 300 s idle. v1.45.0-before-boot is the v1.44 runtime, v1.45.0-boot-after the branch after the boot changes and before the lazy match indexes, v1.45.0-boot-final the final tree.

before final
longest main-thread busy stretch, application code 753 ms (worker graph, one block) 336 ms (query compiler start, 324 ms before as well)
longest stretch loading the worker graph 753 ms 246 ms (one registrar)
live heap after full collections, idle 162 to 172 MB 142 to 153 MB
heap snapshot after 300 s idle 172.3 MB 159.5 MB
parsed locale catalogs in the heap 32 objects, 14.1 MB 2 objects, 1.6 MB
catalog chunk sources in the heap 2 x 9.7 MB none
module source strings over 50 KB 44.2 MB 39.8 MB
event-loop stalls logged (500 ms threshold) 0 (monitor started late) 0 (monitor first)

Time to the first health answer and to a ready worker moved with the host's load (1.6 s / 5.4 s before at load 9, 1.3 s / 3.2 s after at load 6) and is not claimed as a result.

The rest of the 150 MB is the runtime itself: the query compiler (about 50 MB: its engine object, its WebAssembly source and chunk, twice), compiled code (19 MB) and the remaining module sources. The used heap between full collections stayed under 240 MB in both runs; the beta's 400 MB plateau is garbage awaiting a collection under a larger limit plus the server caches of real users, not a baseline the process cannot shed.