How java programs interact with virtual machines at the microarchitectural level
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Myths and realities: the performance impact of garbage collection
Proceedings of the joint international conference on Measurement and modeling of computer systems
The DaCapo benchmarks: java benchmarking development and analysis
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Accurate and efficient regression modeling for microarchitectural performance and power prediction
Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
Regression Modeling Strategies
Regression Modeling Strategies
CIM: A Reliable Metric for Evaluating Program Phase Classifications
IEEE Computer Architecture Letters
Statistically rigorous java performance evaluation
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Discovering and Exploiting Program Phases
IEEE Micro
Comparing low-level behavior of SPEC CPU and java workloads
ACSAC'05 Proceedings of the 10th Asia-Pacific conference on Advances in Computer Systems Architecture
Hi-index | 0.00 |
Java is widely deployed on a variety of processor architectures. Consequently, an understanding of microarchitecture level Java performance is critical to optimize current systems and to aid design and development of future processor architectures for Java. Although this is facilitated by a rich set of processor performance counters featured on several contemporary processors, complex processor microarchitecture structures and their interactions make it difficult to relate observed events to overall performance. This, coupled with the complexities associated with running Java over a virtual machine, further aggravates the situation. This paper explores and evaluates the effectiveness of empirical modeling for Java workloads. Our models use statistical regression techniques to relate overall Java system performance to various observed microarchitecture events and their interactions. Multivariate adaptive regression splines effectively capture non-linear and non-monotonic associations between the response and predictor variables. Our models are interpretable, easy to construct and exhibit high correlation/low errors between predicted and measured performance. Furthermore, empirical models afford additional insights into the characteristics of Java performance and the use of statistical techniques throughout this study allow us to assign confidence levels to our estimates of performance.