Results 1 -
9 of
9
Dynamic metrics for Java
- In Proceedings of the 18th ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
, 2003
"... ..."
Architectural Issues in Java Runtime Systems
, 1999
"... The Java Virtual Machine (JVM) is the corner stone 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 ..."
Abstract
-
Cited by 27 (10 self)
- Add to MetaCart
The Java Virtual Machine (JVM) is the corner stone 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 (from resource-rich servers to resource-constrained hand-held/embedded systems). Towards this goal, this paper examines architectural issues, from both the hardware and JVM implementation perspectives. It specifically explores the potential of a smart JIT compiler strategy that can ...
Java Runtime Systems: Characterization and Architectural Implications
, 2001
"... The Java Virtual Machine (JVM) is the corner stone 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 ..."
Abstract
-
Cited by 19 (0 self)
- Add to MetaCart
The Java Virtual Machine (JVM) is the corner stone 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. Towards 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 sma...
Using complete system simulation to characterize SPECjvm98 benchmarks
- In Proceedings of International Conference on Supercomputing
, 2000
"... Complete system simulation to understand the influence of architecture and operating systems on application execution has been identified to be crucial for systems design. While there have been previous attempts at understanding the architectural impact of Java programs, there has been no prior work ..."
Abstract
-
Cited by 18 (6 self)
- Add to MetaCart
Complete system simulation to understand the influence of architecture and operating systems on application execution has been identified to be crucial for systems design. While there have been previous attempts at understanding the architectural impact of Java programs, there has been no prior work investigating the operating system (kernel) activity during their executions. This problem is particularly interesting in the context of Java since it is not only the application that can invoke kernel services, but so does the underlying Java Virtual Machine (JVM) implementation which runs these programs. Further, the JVM style (JIT compiler or interpreter) and the manner in which the different JVM components (such as the garbage collector and class loader) are exercised, can have a significant impact on the kernel activities. To investigate these issues, this research uses complete system
Understanding Control Flow Transfer and its Predictability in Java Processing
, 2001
"... An in-depth look and understanding of control flow transfer and its predictability can guide architects to adapt control flow prediction hardware in Java processing or finely tune the performance of JVM software on general purpose machines. To our knowledge, this paper provides the first insight of ..."
Abstract
-
Cited by 7 (4 self)
- Add to MetaCart
An in-depth look and understanding of control flow transfer and its predictability can guide architects to adapt control flow prediction hardware in Java processing or finely tune the performance of JVM software on general purpose machines. To our knowledge, this paper provides the first insight of branch behavior on a standard Java Virtual Machine with real workloads. Employing a complete system simulation environment, we profile branch execution characteristics and quantify the performance of a wide range of prediction schemes on both user and kernel code. The impact of different JVM styles (JIT compiler and interpreter) on branch behavior is also studied. We find that: (1) Kernel branches constitute a significant portion of total branch execution in Java processing; (2) Kernel and user code favor different prediction mechanisms; (3) Java processing exercises fairly large number of branch sites and large control flow footprint compared with the execution of benchmarks such as SPECInt95; (4) A major part of the dynamic indirect branches are multiple target (polymorphic) branches. Target addresses of indirect branches, especially those in interpreting mode are highly interleaved and cause high BTB misprediction. 1.
Execution Characteristics of Just-In-Time Compilers
, 1999
"... Just-In-Time (JIT) compilers interact with the Java Virtual Machine (JVM) at run time and compile appropriate bytecode sequences into native machine code. Loading and compilation time penalties are incurred at run time. However, the lack of need for lengthy translations yields benefits if methods ar ..."
Abstract
-
Cited by 6 (4 self)
- Add to MetaCart
Just-In-Time (JIT) compilers interact with the Java Virtual Machine (JVM) at run time and compile appropriate bytecode sequences into native machine code. Loading and compilation time penalties are incurred at run time. However, the lack of need for lengthy translations yields benefits if methods are reused. In this paper, we provide a quantitative characterization of the execution behavior of the SPEC JVM98 programs, in interpreter mode and using JIT compilers. There has not been an effort to study the interaction of the JIT compilation mode of java execution with architectural features. Such a study is important for the development and improvement of better compilers and virtual machines for executing Java. In our study we observe that the interpreter exhibits better instruction and data cache locality. We also observe differences in branch characteristics for the different modes of execution. Keywords: Just-in-Time Compilers, Java Language, SPEC JVM98, Program Analysis, Cache Perfor...
Rehashable BTB: An Adaptive Branch Target Buffer to Improve the Target Predictability of Java Code
- In The International Conference on High Performance Computing (HiPC
, 2002
"... Java programs are increasing in popularity and prevalence on numerous platforms, including high-performance general-purpose processors. ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
Java programs are increasing in popularity and prevalence on numerous platforms, including high-performance general-purpose processors.
Branch Behavior of Java Runtime Systems and its Microarchitectural Implications
, 2000
"... Java programs are becoming increasingly prevalent on numerous platforms ranging from embedded systems to high-end servers. Dynamic translation (interpretation and compilation), frequent calls to native interface libraries or operating system kernel services and abundant usage of virtual methods by J ..."
Abstract
- Add to MetaCart
Java programs are becoming increasingly prevalent on numerous platforms ranging from embedded systems to high-end servers. Dynamic translation (interpretation and compilation), frequent calls to native interface libraries or operating system kernel services and abundant usage of virtual methods by Java programs can complicate the intrinsic predictability of the control flows that can be exploited by an ILP machine. An in-depth look and understanding of the implications on the underlying microarchitecture can either guide architects to design efficient Java processors or finely tune the performance of a Java run time system on general purpose, wide issue machines.

