Sun and Oracle Community Voices How to Buy Log In United States [Change] English

»  Spotlight Articles
»  Projects
»  Publications
»  People
»  Awards
»  Events
»  Downloads
»  Internships
»  Contrarian Minds
»  About Sun Labs
Modeling, Analysis and Throughput Optimization of a Generational Garbage Collector

by David Vengerov

Read Technical Report

January 20, 2009 - The Java platform is used for a wide variety of applications, from small applets on desktops to web services on large servers. Java's popularity is due, in part, to its automatic memory management capability. That is, the programmer does not need to explicitly de-allocate objects, and the system automatically detects and recycles the space occupied by the unreferenced objects (garbage). One of the garbage collection (GC) policies used in Sun's HotSpot Java Virtual Machine is known as the generational throughput collector. It was designed to have a large throughput - fraction of time spent on application's work rather than on garbage collection.

This paper derives an analytical expression for the throughput of this collector and studies its dependence on the key tunable parameters. Based on the derived throughput model, a practical algorithm, ThruMax, is proposed for tuning the collector's parameters so as to formally maximize its throughput.

This algorithm was implemented as an optional feature in an early release of JDK 7, and the algorithm's performance was evaluated for various settings of the SPECjbb2005 workload. A consistent improvement in throughput was demonstrated when the ThruMax algorithm was enabled in JDK 7. The ThruMax algorithm is scheduled to become a part of Sun's HotSpot Java Virtual Machine in 2009.