Abstract
This paper describes a portable and ecient sampling-based online measurement system for production-level Java virtual machines. This system is designed to provide continuous real time system performance measurements to a dynamic compiler, which can use these measurements to target fre- quently executed and time-consuming code for optimization and to make more informed optimization decisions. Because the system has very low overhead, it can be run continu- ously, providing a feedback mechanism to the dynamic com- piler. This system utilizes a novel data structure, the partial calling context tree (PCCT), which allows the ecient en- coding of approximate context-sensitive profile information. The PCCT is organized such that both incremental updates and extracting the important information are ecient oper- ations. This online measurement system has been implemented in a cross-platform industry-leading Java Just-In-Time com- piler. We present detailed performance results on a variety of platforms that show that the system is not only ecient enough to be used continuously in a production environment (2-4% slowdown for most applications) but is also surpris- ingly accurate in the data that it collects (typically 90% accurate).

This publication has 10 references indexed in Scilit: