![]() |
Matthew Hertz |
|||||
|
Spring 2008 Courses
|
Spring 2008 Office HoursWhere am I?
|
Virtual Memory Behavior |
In a recent study, I found that while copying garbage collection performance is competitive with explicit memory management, this holds only when memory is plentiful. More than just demanding larger heap sizes, garbage collection performance depends on the heap staying memory resident. In experiments with several commercial JVMs, I found that SPECjbb throughput decreases up to 66% once the heap no longer fits within available memory. To solve this problem, I have developed Bookmarking collection (BC) and implemented this within the Jikes RVM and MMTk. When memory pressure is low, BC matches or beats the performance of the next best collector I tested, GenMS. By cooperating with the VM when memory pressure increases, BC executes up to 5x faster than the next best collector and up to 41x faster than GenMS. Publications
|
Merlin |
Merlin is the asymptotically optimal object lifetime computation algorithm I developed and implemented within a trace generator for the Jikes RVM. Leveraging the Merlin algorithm, perfectly accurate traces for all of the benchmarks in jolden can be generated in an afternoon (even using the optimizing compiler!) and traces of the SPEC JVM98 suite of programs requires a weekend. "Merlin traces" are being used/have been used in many places including: UMass, McGill University, Australian National University, and the Universities of Colorado, New Mexico, Texas, and Kent. My trace genertion code (which includes both the Merlin algorithm and slower "brute force" method for lifetime analysis) is now a part of MMTk and included in the Jikes RVM CVS tree. Publications
|
Garbage Collection Traces |
The first publication in which I was involved researched the pretenuring of objects. This research analyzed garbage collection traces to find object allocation sites that can be "pretenured" --- or allocated into longer-lived regions. Using our pretenuring algorithm a program's performance can be improved up to 20%! My Master's project examined the effects granulated garbage collection traces have on simulator fidelity. I found that "granulated" traces (traces that accurately compute which objects are unreachable only after every k bytes of allocation) significantly affect simulator results. While there were methods that may limit the impact of trace granularity, only perfectly accurate traces can guarantee accurate simulations. Publications
|
Dissertation |
For a good detailed look of the different topics I tackled in graduate school (and continue to interest me to this day), you can look through my doctoral thesis. While not as large as some, be warned this file is large. Thesis
|
Older First |
In my first few years of graduate school, I implemented the Older First (OF) garbage collection algorithm within the UMass JVM, the Jalapeno virtual machine, and GCTk for the Jikes RVM. While Darko Stefanovic developed the OF algorithm, I have made several implementation optimizations when I coded it for inclusion with GCTk. I also developed the N-Maturing Older First (NMOF) collector which improves the initial OF design by moving objects that survive several collections into a mature object space. While the performance of NMOF has not formally studied, informal analysis suggests NMOF reduces the work OF performs (as measured by the mark-cons ratio). Publications
|
Compiler Optimizations |
I am very interested in compiler optimizations, especially in compiler optimizations for garbage collection. While I have not yet published anything in this area, I spent the summer of 2002 working as a graduate intern at Sun Labs implementing new compiler optimizations for garbage collection within HotSpot. |