Using HPM-Sampling to Drive Dynamic Compilation Dries Buytaerty Andy Georgesy Michael Hind∗ Matthew Arnold∗ Lieven Eeckhouty Koen De Bosscherey y Department of Electronics and Information Systems, Ghent University, Belgium ∗IBM T.J. Watson Research Center, New York, NY, USA fdbuytaer,
[email protected], fhindm,
[email protected], fleeckhou,
[email protected] Abstract guage require a dynamic execution environment called a All high-performance production JVMs employ an adaptive virtual machine (VM). To achieve high performance, pro- strategy for program execution. Methods are first executed duction Java virtual machines contain at least two modes unoptimized and then an online profiling mechanism is used of execution: 1) unoptimized execution, using interpreta- to find a subset of methods that should be optimized during tion [21, 28, 18] or a simple dynamic compiler [16, 6, 10, 8] the same execution. This paper empirically evaluates the de- that produces code quickly, and 2) optimized execution us- sign space of several profilers for initiating dynamic com- ing an optimizing dynamic compiler. Methods are first ex- pilation and shows that existing online profiling schemes ecuted using the unoptimized execution strategy. An online suffer from several limitations. They provide an insufficient profiling mechanism is used to find a subset of methods to number of samples, are untimely, and have limited accu- optimize during the same execution. Many systems enhance racy at determining the frequently executed methods. We de- this scheme to provide multiple levels of optimized execu- scribe and comprehensively evaluate HPM-sampling, a sim- tion [6, 18, 28], with increasing compilation cost and bene- ple but effective profiling scheme for finding optimization fits at each level.