返回
Java runtime systems: Characterization and architectural implications
DOI:10.1109/12.908989.png)
摘要
En 中文
The Java Virtual Machine (JVM) is the cornerstone of Java technology and its efficiency in executing the portable Java bytecodes is crucial for the success of this technology. Interpretation, Just-in-Time (JIT) compilation, and hardware realization are well-known solutions for a JVM and previous research has proposed optimizations for each of these techniques. However, each technique has its pros and cons and may not be uniformly attractive for all hardware platforms, Instead, an understanding of the architectural implications of JVM implementations with real applications can be crucial to the development of enabling technologies for efficient Java runtime system development on a wide range of platforms. Toward this goal, this paper examines architectural issues from both the hardware and JVM implementation perspectives. The paper starts by identifying the important execution characteristics of Java applications from a bytecode perspective. It then explores the potential of a smart JIT compiler strategy that can dynamically interpret or compile based on associated costs and investigates the CPU and cache architectural support that would benefit JVM implementations. We also study the available parallelism during the different execution modes using applications from the SPECjvm98 benchmarks. At the bytecode level. it is observed that less than 45 out of the 256 bytecodes constitute 90 percent of the dynamic bytecode stream. Method sizes fall into a trinodal distribution with peaks of 1, 9, and 26 bytecodes across all benchmarks. The architectural issues explored in this study show that. when Java applications are executed with a JIT compiler, selective translation using good heuristics can improve performance, but the saving is only 10-15 percent at best. The instruction and data cache performance of Java applications are seen to be better than that of C/C++ applications except in the case of data cache performance in the JIT mode. Write misses resulting from installation of JIT compiler output dominate the misses and deteriorate the data cache performance in JIT mode. A study on the available parallelism shows that Java programs executed using JIT compilers have parallelism comparable to C/C++ programs for small window sizes, but falls behind when the window size is increased. Java programs executed using the interpreter have very little parallelism due to the stack nature of the JVM instruction set, which is dominant in the interpreted execution mode. In addition, this work gives revealing insights and architectural proposals for designing an efficient Java runtime system.
Keyword:
Java
Java bytecodes
CPU and cache architectures
ILP
performance evaluation
benchmarking
期刊
IF:
3.8
论文数:
5.3K
被引数:
9.8K
机构
暂无机构信息
引用论文
Increased prevalence of the Taq I A1allele of the dopamine receptor gene (DRD2) in obesity with comorbid substance use disorder: a preliminary report肥胖伴共病物质使用障碍的多巴胺受体基因 (DRD2) 的Taq I a1等位基因的患病率增加: 初步报告
An approach to bufadienolides from deoxycholic acid. Reactions of a steroidal αβ-unsaturated aldehyde with some O-silylated ketene acetals
Tetrahedron
IF0
Inorganic gels for immobilization of biocatalysts: inclusion of invertase-active whole cells of yeast (saccharomyces cerevisiae) into thin layers of SiO2 gel deposited on glass sheets用于固定生物催化剂的无机凝胶: 将具有转化酶活性的酵母 (酿酒酵母) 全细胞包含在沉积在玻璃片上的SiO2凝胶薄层中

