Low Overhead Allocation Sampling in a Garbage Collected Virtual Machine

4 months ago 27

[Submitted on 20 Jun 2025]

View PDF HTML (experimental)

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.

Submission history

From: C.F. Bolz-Tereick [view email]
[v1] Fri, 20 Jun 2025 10:11:03 UTC (587 KB)

Read Entire Article