Low Overhead Allocation Sampling in a Garbage Collected Virtual Machine
Christoph Jung, C.F. Bolz-Tereick

TL;DR
This paper introduces a low-overhead, sampling-based allocation profiler integrated into PyPy's garbage collector, enabling efficient profiling of memory allocations with minimal performance impact.
Contribution
It presents a novel, deeply integrated sampling profiler for allocations in a garbage collected VM, achieving low overhead and tunability.
Findings
Maximum 25% overhead with 4 MB sampling period
Efficient profiling of allocation-heavy programs
Deep integration reduces profiling overhead
Abstract
Compared to the more commonly used time-based profiling, allocation profiling provides an alternate view of the execution of allocation heavy dynamically typed languages. However, profiling every single allocation in a program is very inefficient. We present a sampling allocation profiler that is deeply integrated into the garbage collector of PyPy, a Python virtual machine. This integration ensures tunable low overhead for the allocation profiler, which we measure and quantify. Enabling allocation sampling profiling with a sampling period of 4 MB leads to a maximum time overhead of 25% in our benchmarks, over un-profiled regular execution.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Logic, programming, and type systems · Software System Performance and Reliability
