DocumentCode :
3355137
Title :
Dynamic profiling and trace cache generation
Author :
Berndl, Marc ; Hendren, Laurie
Author_Institution :
Sch. of Comput. Sci., McGill Univ., Montreal, Que., Canada
fYear :
2003
fDate :
23-26 March 2003
Firstpage :
276
Lastpage :
285
Abstract :
Dynamic program optimization is increasingly important for achieving good runtime performance. A key issue is how to select which code to optimize. One approach is to dynamically detect traces, long sequences of instructions spanning multiple methods, which are likely to execute to completion. Traces are easy to optimize and have been shown to be a good unit for optimization. The paper reports on a new approach for dynamically detecting, creating and storing traces in a Java virtual machine. We first describe four important criteria for a successful trace strategy: good instruction stream coverage, low dispatch rate, cache stability, and optimizability of traces. We then present our approach based on branch correlation graphs. A branch correlation graph stores information about the correlation between pairs of branches, as well as additional state information. We present the complete design for an efficient implementation of the system, including a detailed discussion of the trace cache and profiling mechanisms. We have implemented an experimental framework to measure the traces generated by our approach in a direct-threaded Java VM (SableVM) and we present experimental results to show that the traces we generate meet the design criteria.
Keywords :
Java; optimising compilers; program diagnostics; virtual machines; Java virtual machine; SableVM; branch correlation graphs; cache stability; design criteria; direct-threaded Java VM; dispatch rate; dynamic profiling; dynamic program optimization; instruction stream coverage; profiling mechanisms; runtime performance; state information; trace cache generation; trace cache mechanisms; trace detection; trace optimizability; trace strategy; Computer science; Design optimization; Java; Magnetohydrodynamic power generation; Optimization methods; Optimizing compilers; Power generation; Runtime; Stability criteria; Virtual machining;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Code Generation and Optimization, 2003. CGO 2003. International Symposium on
Print_ISBN :
0-7695-1913-X
Type :
conf
DOI :
10.1109/CGO.2003.1191552
Filename :
1191552
Link To Document :
بازگشت