Oracle's HotSpot VM comes with two flavors of JIT compilers. It is also a prerequisite for providing the debugging-on-demand functionality. Normal execution, but may lead to situations where the optimization was too optimistic and must therefore be undone. “deoptimization” allows the compiler to perform aggressive optimizations that speed up the The JIT compiler does not only provide functionality to compile byte codes into native code blobs, it also contains techniques for switching back from compiled code to the interpreter. This hotspot monitoring is continued dynamically as the program runs, so that it literally adapts its performance on-the-fly to the needs of the user. Performance-critical parts of the program, without necessarily increasing the overall compilation time. By avoiding compilation of infrequently executed code (most of the program), the compiler can devote much more attention to the Then the SAP JVM focuses the attention of a global native-code compiler and optimizer on these hot spots. Rather than compiling method-by-method the SAP JVM runs the program immediately using an interpreter. In order to speed up the execution time of a Java program, a just-in-time (JIT) compiler exists that translates the byte codes into native machine code on-the-fly. The loaded byte codes are then emulated by a byte code interpreter. The class loading system dynamically loads, links, and initializes classes and interfaces. Java byte codes are stored in so-called class filesĭefined by the VM specification. To provide the semantics of the Java language specification, several low level components like a system for managing Java threads are available. The runtime environment contains all the core components necessary for executing Java byte codes. The basic architecture of the SAP JVM is shown in the following figure. The J2SE class library just contains a small wrapper around the native interface. Note that the actual implementation of these features SAP JVM : switching to debugging on demand, comprehensive monitoring information, and several traces for important VM parts. In addition to the libraries already provided by Oracle, a supportability library for better monitoring the SAP NetWeaver Application Server for Java and its applications has been added by SAP (the supportability library is meant for use by SAP products only). Therefore the SAP JVM contains a full AWT/Swing implementation on all supported platforms, although SAP does not provide support for AWT or other UI based applications (except for tools provided by SAP with the SAP NetWeaver Application Server for Java). Provide a fully-certified Java VM, the AWT/Swing functionality has to be implemented. The Abstract Window Toolkit (AWT) and Swing are the J2SE standard API for providing graphical user interfaces with Java programs. Thus support for sound and printing has been removed from the delivery. Some OS resources directly accessed by the J2SE class library implementation.Īs already stated the SAP JVM has been designed for server-side applications. The Hotspot Platform Interface (HPI) provides an abstraction over However, the native parts of the UI implementation are implemented by directly accessing the OS interface without interfering with the VM. For native resources which have to be managed by the VM runtime, the VM itself provides the necessary interfaces for the J2SE class library.įor example, Java threads and the OS threads utilized for them are created and managed by the VM. In order to implement parts of this functionality (for example the file and thread system, AWT) access to the operating system (OS) interface is needed. An extract of these libraries is shown in The J2SE class library ranges from basic Java utility functionality (for example, basic data structures and XML parser functionality) and low level system features (for example, threading infrastructure and lock handling), up to a complete UI layer. The VM depends on the operating system layer (for example, for implementing the Java thread system)Īnd, in particular, the code generated from the just-in-time (JIT) compiler depends on the CPU architecture. The J2SE class library uses operating system specific interfaces mainly for implementing the user interface (UI) and I/O services. Java Virtual Machine Tool Interface JVMTI).īoth the VM and J2SE class library contain platform specific code. It provides native interfaces for the implementation of the J2SE class library and for native applications (such as third party profiler implementations using the The VM constitutes the runtime environment for Java applications and is responsible for executing the Java byte code. From a Java application perspective, the class library is the main entry point into the SAP JVM. The J2SE class library contains the Java libraries as required by the Java SE specification. The SAP JVM is basically structured into two parts: the J2SE class library and the VM.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |