2002 · 23 citations · 3 references
EngineeringCompiler TechnologyComputer ArchitectureSoftware EngineeringSoftware AnalysisPerformance IssueJava BytecodePerformance TuningCurrent Hardware PlatformsParallel ComputingJava CodeDynamic CompilationComputer EngineeringComputer ScienceReal-time JavaPerformance Analysis ToolStatic Program AnalysisBranch Performance IssuesProgram AnalysisSoftware TestingJava Bytecode LanguageParallel ProgrammingPerformance PortabilitySystem Software
The Java bytecode language is emerging as a software distribution standard. With major vendors committed to porting the Java run-time environment to their platforms, Java bytecode programs are expected to run without modification on multiple platforms. These first generation run-time environments rely on an interpreter to bridge the gap between the bytecode instructions and the native hardware. However, Java interpreters cause performance problems with microarchitectural features such as the caches and the Branch Target Buffer. Some of these problems can be solved by translating Java bytecode to native code. We compare the performance of code run through the SUN Java interpreter to code compiled through Caffeine, a bytecode to native code translator, as well as to compiled C/C++ versions of the code, using large applications and common benchmarks. We discuss the reasons for several performance problems incurred by both approaches to running Java code, and examine possible solutions.
3
Two-level adaptive training branch prediction
Tse-Yu Yeh, Yale N. Patt · 1991 · 560 citations · Full text
Pohua P. Chang, Scott Mahlke, William Y. Chen et al. · 1991 · 299 citations