[dependencies]
heapscope = "0.2"
Changed
- Folded output names functions, not return addresses. Each frame is its demangled function name, so a flame graph merges a function however many call sites reached it. The 0.1.0 addressed rendering is still available through
write_folded_with, and heapscope-symbolize -f folded writes the new form too. (#7)
- Frames are named at the call site.
heapscope-symbolize and in-process lookup now resolve the call instruction rather than the return address, so a frame no longer takes the name of whatever the compiler placed after the call, which across inlining is often another function. Recorded addresses are unchanged.
Added
Profiler::reset restarts a running profile's counts while keeping what is live, to leave a warm-up out. Every output except folded stacks records that a reset happened. (#9)
RegionBreakdown::get() reads per-region totals without taking a full snapshot, and a new (no region) row covers what no region did, so the rows sum to the run's totals. (#8)
assert_alloc_count! gains a ceiling form (<= n) and a since: mark form. (#5)
Fixed
- The live-block table no longer stops recording new blocks after long churn of distinct addresses at its size limit. (#11)