The AOT compiler acts as a good substitute that can achieve better startup performance and at the same time, performs better than interpretation. Moreover, by combining the AOT technology with JIT technology and allowing AOT methods that are executed frequently to be recompiled by the JIT compiler, high throughput performance can be achieved along with fast startup time. The AOT compiler in the IBM JRE for Java 6 supports this functionality and has been released on all 18 of IBM's J2SE platforms. The AOT compiler compiles methods into AOT code while the application is run for the first time and stores the code into a persistent cache. The previously compiled AOT code can be loaded by subsequent JVMs for fast startup and response time. We have made a number of improvements to the AOT technology, for example, better detection of the startup phase and allowing the methods to be recompiled earlier, for improving startup and throughput respectively. Our experimental results have shown significant startup improvements by using AOT compilation: up to 18% for Websphere Application Server and 10% for Rational Application Developer.
This presentation will provide an overview of the AOT compiler in the IBM JRE for Java 6, explain the recent enhancements we have made to better exploit the AOT technology for faster startup time with good throughput, and summarize some cross-platform experimental results which demonstrate the effectiveness of the AOT compiler to help improve startup performance.