The efficiency of a Java program under different Java runtime environments (JREs) can be different on different superscalar machines. This project analyzes Java benchmark programs that run on different Java runtime environments, and examines hardware resource consumption on different superscalar machine configurations.
We examined selected SPEC JVM98 benchmarks running under three different Java runtime environments, namely, interpreted Java benchmarks, Just-In-Time (JIT) compiled Java benchmarks, and native compiled Java benchmarks. We used Sun Microsystem’s Shade instrumentation toolkit to simulate several superscalar machine configurations. Our focus was on performance degradation from mispredicted conditional branches and indirect jumps; we found that the degradation can vary significantly across different JREs and benchmarks. These results could help to determine the hardware components that we should emphasize when designing a processor to support a specific Java runtime environment. |