Documentation
¶
Overview ¶
heap-repro drives one long-lived Dagger session through many module function calls while sampling the engine's heap profile, then renders the samples as a stacked area chart so the memory retained per nested client can be compared between engine builds.
Every call spawns a fresh module runtime, which connects back to the engine as a nested client with its own telemetry. Before client reclamation those runtimes stayed alive until the session ended, so the heap grew with every call; after it, the heap stays flat.
Usage, from a checkout whose dev engine is running (see hack/dev):
./hack/with-dev go run ./hack/heap-repro record -label main -out main.json ./hack/with-dev go run ./hack/heap-repro record -label branch -out branch.json go run ./hack/heap-repro chart -out heap.html main.json branch.json
hack/heap-repro/run.sh wraps the engine rebuild and the record step for one worktree.
Click to show internal directories.
Click to hide internal directories.