Low Overhead Allocation Sampling in a Garbage Collected Virtual Machine

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Jung, Christoph, Bolz-Tereick, C. F.
Format: Preprint
Published: 2025
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866911015382286336
author Jung, Christoph
Bolz-Tereick, C. F.
author_facet Jung, Christoph
Bolz-Tereick, C. F.
contents 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.
format Preprint
id arxiv_https___arxiv_org_abs_2506_16883
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Low Overhead Allocation Sampling in a Garbage Collected Virtual Machine
Jung, Christoph
Bolz-Tereick, C. F.
Programming Languages
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.
title Low Overhead Allocation Sampling in a Garbage Collected Virtual Machine
topic Programming Languages
url https://arxiv.org/abs/2506.16883