Skip to content

heapscope 0.2.0

Choose a tag to compare

@stephenberry stephenberry released this 06 Oct 22:57
· 5 commits to main since this release
[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)