Intelligent Selection of Application-Specific Garbage Collectors
Jeremy Singer, Gavin Brown, Ian Watson and John Cavazos
The 2007 International
Symposium on Memory Management (ISMM 2007) Montreal, Canada, 21-22
October, 2007
Abstract
Java program execution times vary greatly with different
garbage collection algorithms. Until now, it has not been possible to determine
the best GC algorithm for a particular program without exhaustively profiling
that program for all available GC algorithms. This paper presents a new
approach. We use machine learning techniques to build a prediction model that,
given a single profile run of a previously unseen Java program, can predict an
optimal GC algorithm for that program. We implement this technique in Jikes RVM
and test it on several standard benchmark suites. Our technique achieves 5\%
speedup in overall execution time (averaged across all test programs and
heapsizes) compared with selecting the default GC algorithm in every trial. We
present further experiments to show that an oracle predictor could achieve an
average 10\% speedup on the same benchmarks. In addition, we demonstrate that GC
behaviour is typically independent of program inputs. These observations lead us
to propose that intelligent selection of GC algorithms is suitably
straightforward, efficient and effective to merit further exploration regarding
its potential inclusion in the general Java software deployment process.