Estimating the Impact of Code Additions on Garbage Collection Overhead

In managed memory environments, code changes influence performance both through time spent executing the code and time spent collecting garbage generated by the code. This complicates decision making when considering performance impact of code changes—while the impact on execution time is usually easy to assess in isolation, the impact on garbage collection time depends on the memory allocation behavior of the code surrounding the changes. In our paper, we describe a method to estimate the impact of code changes with additional allocations on garbage collection time, which can be applied, e.g., when assessing the overall performance impact of alternative changes. The method is demonstrated on experiments with the HotSpot virtual machine.