Intelligent Selection of Application-Specific Garbage Collectors
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. The authors use machine learning techniques to build a prediction model that, given a single profile run of a previously unseen Java program, can predict a good GC algorithm for that program. They implement this technique in Jikes RVM and test it on several standard benchmark suites. Their technique achieves 5% speedup in overall execution time (averaged across all test programs for the largest heap size) compared with selecting the default GC algorithm in every trial.