I am in love with JRockit! 🙂 JRockit is the high performance JVM developed for server-side applications that is bundled and integrated into the BEA product line, including WebLogic Server. BEA acquired Appeal Virtual Machines AB, a Swedish company that made JRockit in 2001. Since then, they have worked closely with Intel to improve the product for servers based for Intel architectures.
WebLogic JRockit is the world’s fastest JVM for server applications. The virtual machine has full Java compatibility (1.3 & 1.4) and support for dynamic class loading. JRockit uses full adaptive optimization where it provides runtime information to improve code optimizations, garbage collection and thread management. JRockit also adapts to its underlying hardware and to the application running on it, but you also configure the memory management system (including the garbage collectors), and the thread system.
JRockit supports four different modes of Garbage Collection: a single-spaced concurrent GC, a generational concurrent GC, a parallel GC, and a generational copying GC. JRockit also has two different threading models. The first is the traditional threading or native-thread model that is used by most VM’s. A new model that is unique to JRockit is called thin-threads where multiple Java threads are run on a singe operating system thread. This allows JRockit to optimize thread scheduling, thread switching, and thread synchronization, while using less memory. While the thin-thread model is experimental, it is very useful in Linux and Windows environment.
I have been using JRockit since the first release of the product from BEA and it is just an amazing VM. The performance improvement is noticeable and quantifiable. With the latest release of the VM bundled with 8.1 SP1 WebLogic server, I see a 28% performance improvement across the board with a vanilla J2EE application with servlets, stateless session beans and DAO. The performance improvement is great and the app just visually looks and feels faster.
Another bonus of the JRockit VM is the management console that is included as part of the VM. The JRockit Management Console can be used to monitor and control running instances of WebLogic JRockit JVM. It provides real-time information about memory and CPU usage, method invocations, exceptions and many other items. You can also setup notifications based on certain events such as heap size, CPU usage, etc.
One of my favorite features is ability to generate a thread dump on the running server you are attached to.
The latest thing to come out of the JRockit engineering group is the WebLogic JRockit Runtime Analyzer Tool. The runtime analyzer tool allows you to capture and analyze the actual runtime characteristics of the application running under the VM.
To start using the runtime analyzer, you start by creating recording. To do that, you
C:\java-tools\jrockit_runtime_analyzer>java -jar JraRecordingStarter.jar localhost 7090 vinny.xml 300
Recording successfully started!
Where vinny.xml is the name of the file that is recording the data and 300 is the duration (in seconds) of the recording.
Once the recording is complete, you can use the runtime analyzer to dig into the results and see how JRockit is optimizing your application.
I highly recommend you download and play with JRockit and test it out yourselves. JRockit is free for download and I hope it will continue to be free. It is in BEA’s interest to develop JRockit to make WebLogic more performant on the Wintel/Lintel platform and offer a lower TCO of the platform. Hope you find JRockit as awesome as I do.
PS: The views and opinions expressed on this page are my personal opinion and in no way reflect the opinion or position of the company I work for or it’s other employees.