Excelsior JET is a comprehensive solution for Java(tm)application performance and intellectual property protection, available for Microsoft Windows and Linux on the Intel IA-32 (x86) platform. It employs Excelsior’s Java to native code optimizing compilation technology that improves performance and reduces resource requirements of large Java applications. Applications compiled with JET are conventional executables, which neither include nor require a Java interpreter, and which are as hard to revese engineer as C++ executables.
JET is based on the Excelsior’s proprietary compiler construction framework designed for creation of highly optimizing compilers for various target architectures (x86, PowerPC, SPARC, etc.). The framework has proved its high quality in industrial tools, such as XDS Modula-2/Oberon-2 multiplatform compilers, and custom proprietary language compilers. It has been enhanced with Java-specific optimizations, including object-oriented.
JET is intended for compilation of Java bytecode into optimized native code. Although direct compilation of Java sources would potentially allow it to achieve better levels of optimization, compilation of bytecode is actually more important, since third-party libraries are usually distributed in this form. Therefore you have to compile all your Java sources into .class files prior to using the JET compiler. We recommend to use the javac compiler that is part of Sun Java 2 SDK, although JET is capable of compiling bytecodes produced by other compilers, such as IBM Jikes.
Future versions of JET may support direct Java source code compilation.
Excelsior JET 3.7 supports all J2SE 5.0 (Tiger) features. JRE-independent deployment for J2SE 5.0 is not possible, though.
Support for the latest J2SE 1.3.x and 1.4.y microversions is also implemented.
Excelsior JET 3.7, Professional Edition introduces a new runtime library optimized for parallel execution on Hyper-Threading enabled CPUs and multiprocessor systems. See Runtime Selection for details.
In Excelsior JET 3.7, one core feature from the Professional Edition has been added to the Standard Edition: the fast (non-optimizing) JIT compiler without the caching engine. As a result, the Standard Edition now fully supports all features of the Java Platform, including dynamic class loading. See Chapter Mixed compilation model for details.
At the same time, the following auxiliary features have been removed from the Standard Edition:
These features will remain present in the Professional Edition.
Finally, the JetPerfect Global Optimizer has become an optional free add-on to the Professional Edition.
64-bit integer type support has been rewritten and no longer hinders the register allocator. As a result, the execution speed of programs that heavily use long variables has improved dramatically.
More objects are now allocated on the stack rather than on the heap, and the newly-introduced object explosion (conversion of stack-allocated objects’ fields to local variables) amplifies the effect.
Various improvements have been made in:
Faster synchronization primitives have been implemented.
Excelsior JET provides complete support for dynamic class loading through Mixed Compilation Model. You distribute along with your statically compiled application a Just-In-Time compiler, which handles dynamically loaded classes unknown at compile-time. Moreover, Excelsior JET, Professional Edition supports caching of the dynamically compiled code for faster application startup.
Mixed Compilation Model effectively makes JET fully conforming to the Java specification. It enables you to statically compile applications that employ RMI Distributed Object Model, Dynamic Proxy API, third-party plugins, or any other mechanisms essentially relying on dynamic class loading.
See Chapter Mixed compilation model for details.
Excelsior JET, Professional Edition features JetPerfect Global Optimizer, which analyses the entire program and delivers performance improvement and executable size reduction.
See Chapter JetPerfect Global Optimizer for details.