Article ID | Journal | Published Year | Pages | File Type |
---|---|---|---|---|
433387 | Science of Computer Programming | 2013 | 13 Pages |
Semispace garbage collectors relocate all the live objects in one step, which is simple and leads to good performance. Compared with mark-compact collectors, however, they need to reserve extra heap space for copying live objects. As much as half of the heap could be reserved as it is possible that all the allocated objects survive. In reality, however, most programs exhibit a high infant mortality, and therefore reserving half the heap is wasteful.We have observed that the memory usage of many ordinary programs is relatively stable over the course of their execution. This provides an opportunity for online predictions to dynamically adjust and optimize the reserved space. Consequently, we propose a skew-space garbage collector that reserves space dynamically. This collector is implemented using the MMTk framework of the Jikes RVM and gives encouraging results against related garbage collection algorithms for the DaCapo and SPECjvm98 benchmarks.
► Observed and analyzed the size of live Java objects phenomenon. ► Proposed a skew-space collector to utilize this phenomenon. ► Implemented the collector using Jikes RVM and suggested several possible improvement techniques.