Font Size: a A A

Garbage collection scheduling for Java applications

Posted on:2002-04-05Degree:M.ScType:Thesis
University:York University (Canada)Candidate:Chang, LiFull Text:PDF
GTID:2468390011493666Subject:Computer Science
Abstract/Summary:
Garbage collection is a process for automatically reclaiming dead objects in a dynamic memory management environment such as a Java runtime system. The Boehm-Demers-Weiser conservative mark-sweep garbage collector (BDW) is a widely used system for automatic garbage collection (GC). In this thesis, we evaluate its performance in the High Performance Java system developed at the IBM Toronto Lab. We concentrate on the garbage collection scheduling policy deployed by the BDW garbage collector. We notice that the decisions regarding when to start garbage collection and how frequently to perform garbage collection have a significant impact on the performance of an application. As our primary goal is to speed up the execution of Java applications, we have designed and implemented a two-phase algorithm that leans heavily towards the time side of the time and space balance. The division between the two phases is determined by the physical memory limit of the platform it is running on, hence making this algorithm memory configuration conscious and thus different from the original BDW garbage collection-scheduling algorithm. The algorithm switches from aggressive heap growth to aggressive garbage collection after the application heap reaches the physical memory limit. Running on a PC system with Pentium™ II processor at 400 MHz and 64 MB memory, the new algorithm significantly improves the performance of a number of Java applications by as much as 44%. If we exclude one application, where the algorithm actually slows down the application by a substantial margin, it has achieved an average performance improvement of more than 15%.
Keywords/Search Tags:Garbage collection, Java, Application, Memory, Performance
Related items