Adaptive Tuning of Reserved Space in an Appel Collector

The use of automatic memory management in object-oriented languages like Java is becoming widely accepted because of its software engineering benefits, its reduction of programming time and its safety aspects. Nevertheless, the complexity of garbage collection results in an important time cost for the virtual machine’s job. Until now, garbage collection strategies have focused on analyzing and adjusting regions in the heap based on different approaches and algorithms. Each strategy has its own distinct advantages over the others depending on the data behavior of a specific application, but none succeeds in taking advantage of all available resources for all application behaviors. In this paper, we present and evaluate two adaptive strategies based on data lifetime that reallocate at run time the reserved space in the nursery of generational Appel collectors. The adaptive tuning of reserved space produces a drastic reduction in the number of collections and the total collection time, and has a clear effect on the final execution time.