The Java Virtual Machine (JVM), a software layer to execute Java bytecodes, while providing desirable features such as a "write-once, run anywhere model" for software developers, and security and portability for end-users, has to look for other components to ensure high performance. In order to circumvent this JVM handicap, a technique called Just-in-Time (JIT) compilation is used to implement a Java virtual machine. Through JIT compilation, a bytecode method is translated into a native method so as to remove the interpretation overhead.
Since the JIT compilation itself is part of the total execution time of a Java program, it must be fast and the benefit from compilation must outweigh the JIT compilation overhead. LaTTe is a virtual machine which is able to execute Java bytecode. It includes a novel JIT compiler targeted to RISC machines (specifically the UltraSPARC). The JIT compiler generates RISC code of good quality through a clever mapping of Java stack operands to registers with a negligible overhead. Additionally, the runtime components of LaTTe, including thread synchronization, exception handling, and garbage collection, have been optimized.
LaTTe includes features like fast and effective JIT translation with efficient register mapping and allocation, traditional optimizations, object oriented approach, limited framework for adaptive compilation currently based on method run counts, a reasonably fast bytecode interpreter, intended to be used with the adaptive compilation framework, lightweight monitors, on-demand translation of exception handlers and a fast non-incremental garbage collector. However, compared to other commercial Java virtual machines, LaTTe lacks in features like no AWT or Swing, not Java 2, no bytecode verifier, no JNI support, incomplete class library and no support for JAR or compressed ZIP archives.
Java Development India offers LaTTe JVM development, LaTTe JVM consulting and LaTTe JVM related solutions from our offshore software development outsourcing centre at Kochi, Kerala in India.
|