MicroPhase: An Approach to Proactively Invoking Garbage Collection for Improved Performance
|
Feng Xian, Witawas Srisa-an, and Hong Jiang
|
International Conference of Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Montreal, Canada, October 21-25, 2007.
|
Abstract
|
|
To date, the most commonly used criterion for invoking garbage
collection (GC) is based on heap usage; that is, garbage
collection is invoked when the heap or an area inside the heap is
full. This approach can suffer from two performance shortcomings:
untimely garbage collection invocations and large volumes of surviving
objects. In this work, we explore a new GC triggering approach called
MicroPhase that exploits two observations: (i) allocation
requests occur in phases and (ii) phase boundaries coincide with times
when most objects also die. Thus, proactively invoking garbage
collection at these phase boundaries can yield high efficiency. We
extended the HotSpot virtual machine from Sun Microsystems to support
MicroPhase and conducted experiments using 20 benchmarks. The
experimental results indicate that our technique can reduce the GC
times in 19 applications. The differences in GC overhead range from an
increase of 1% to a decrease of 26% when the heap is set to twice the
maximum live-size. As a result, MicroPhase can improve the overall
performance of 13 benchmarks. The performance differences range from a
degradation of 2.5% to an improvement of 14%.
|
|
|
PDF version
|