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.
Cite
@article{arxiv.2506.16883,
title = {Low Overhead Allocation Sampling in a Garbage Collected Virtual Machine},
author = {Christoph Jung and C. F. Bolz-Tereick},
journal= {arXiv preprint arXiv:2506.16883},
year = {2025}
}