Results 1 -
5 of
5
Online Feedback-Directed Optimization of Java
, 2002
"... This paper describes the implementation of an online feedback-directed optimization system. The system is fully automatic; it requires no prior... ..."
Abstract
-
Cited by 45 (3 self)
- Add to MetaCart
This paper describes the implementation of an online feedback-directed optimization system. The system is fully automatic; it requires no prior...
Thin Guards: A Simple and Effective Technique for Reducing the Penalty of Dynamic Class Loading
- In 16th European Conference on Object-Oriented Programming
, 2002
"... Dynamic class loading is an integral part of the Java programming language, offering a number advantages such as lazy class loading and dynamic installation of software components. Unfortunately, these advantages often come at the cost of decreased performance because certain optimizations become mo ..."
Abstract
-
Cited by 16 (4 self)
- Add to MetaCart
Dynamic class loading is an integral part of the Java programming language, offering a number advantages such as lazy class loading and dynamic installation of software components. Unfortunately, these advantages often come at the cost of decreased performance because certain optimizations become more dicult to perform when an optimizing compiler cannot assume that it has seen the whole program. This paper introduces thin guards, a simple but effective technique that uses lightweight runtime tests to identify regions of code within which speculative optimizations can be performed. One application of thin guards is described in detail, demonstrating how they can be used to perform speculative inlining in the presence of dynamic class loading. Our experimental evaluation shows that when used in combination with other traditional compiler optimizations, thin guards can eliminate most of the penalty dynamic class loading. Performance improvements of up to 27% are observed, eliminating up to 92% of the penalty imposed by dynamic class loading.
TFP: Time-sensitive, Flow-specific Profiling at Runtime
- in LCPC
, 2003
"... Program profiling can help performance prediction and compiler optimization. This paper describes the initial work behind TFP, a new profiling strategy that can gather and verify a range of flow-specific information at runtime. While TFP can collect more refined information than block, edge or p ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
Program profiling can help performance prediction and compiler optimization. This paper describes the initial work behind TFP, a new profiling strategy that can gather and verify a range of flow-specific information at runtime. While TFP can collect more refined information than block, edge or path profiling, it is only 5.75% slower than a very fast runtime path-profiling technique. Statistics collected using TFP over the SPEC2000 benchmarks reveal possibilities for further flow-specific runtime optimizations. We also show how TFP can improve the overall performance of a real application.
Using Hardware Counters to Improve Dynamic Compilation
, 2003
"... In this paper, we describe our project to explore the use of hardware counters to improve triggering techniques for runtime dynamic code recompilation. The Intel Open Runtime Platform (ORP) was chosen as the target Just In Time (JIT) compilation-capable Java Virtual Machine (JVM). The performance co ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
In this paper, we describe our project to explore the use of hardware counters to improve triggering techniques for runtime dynamic code recompilation. The Intel Open Runtime Platform (ORP) was chosen as the target Just In Time (JIT) compilation-capable Java Virtual Machine (JVM). The performance counter library (PCL) implemented by Rudolf Berrendorf et al. was used to retrieve real-time micro-architectural level performance values. Only one of these values, the cycle count, was used in this project. Although, the benchmark performance results were not as good as originally anticipated, the work completed for this project has created an infrastructure that can be easily reused and adopted to use other hardware counter values to create improved compilation triggering mechanisms. We introduce a di#erent and potentially better way of performing runtime profiling in comparison to software-only technique used in the original ORP.

