Dynamic management of nursery space organization in generational collection

The use of automatic memory management in object-oriented languages like Java is becoming eagerly accepted due to its software engineering benefits, its reduction in programming time and safety aspects. Nevertheless, the complexity of garbage collection results in an important overhead for the virtual machine job. Until now, the strategies in garbage collection have focused in defining and fixing regions in the heap based in different approached and algorithms. Each of these strategies can beat the others depending on the data behavior of a specific application, but they fail to take advantage of the available resources for other cases. There is not a static solution to this problem. In this paper, we present and evaluate two dynamic strategies based in data lifetime that reallocate at run time the reserved space in the nursery of generational Appel collectors. The dynamic tuning of the reserved space produces a drastic reduction in the number of collections and the total collection time and has a clear effect in the final execution time.