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.
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.