Parent: #97 Related: #49, #310 Dependency completed: zig-utils/zig-gc#41 Follow-up: #427 and zig-utils/zig-gc#42
The exact shared object-churn runner now has opt-in cooperative-GC telemetry. Without --gc-telemetry, normal output is unchanged and phase clocks/counter mutations remain disabled. The profile keeps the exact source, 100 jobs/lane, checksum, and fresh-process protocol while separating worker/join time, allocation batches, rendezvous, collection phases, heap accounting, and backing state.
Acceptance
- Add opt-in telemetry without changing workload bytes, jobs, checksums, warmup, or normal benchmark output.
- Report cooperative attempts, collections, timeouts, parks, pause, tranche bytes, and issued/reset bytes.
- Attribute worker execution versus creator join and separate rendezvous, trace, sweep, allocation, heap, and backing costs.
- Keep snapshots race-free/coherent under no-GIL execution with focused normal and TSan counter tests.
- Run seven fresh 1/2/4/8-lane ReleaseFast processes with exact checksums and publish raw/summary evidence.
- Identify a measured next optimization before changing collector policy.
- Leave README benchmark scores unchanged because this is a focused diagnostic, not a complete matrix.
Evidence
- implementation:
8b271b348c1c214d891554cd4def14ed45bba78c - publication:
8e4580cf - raw 28 samples
- summary and reproduction
At eight lanes the median is 1,862.639 ms (0.49x scaling). Cooperative pause is 618.958 ms; nursery sweep is 540.893 ms (87.4% of the pause), versus 0.020 ms rendezvous and 0.399 ms trace. All seven processes completed one minor collection with zero timeouts, reclaiming a median 1.073 GB while retaining about 3,052 young cells. #427/zig-gc#42 therefore track whole-run dead backing reclamation; rendezvous and trace are not the next target.
Closure awaits the unsuperseded exact-main run for 8e4580cf.