Manipulating the Class File with AsmTools

A Java class file is represented with a hardware & OS independent binary format to be loaded & interpreted at runtime. Except the magic number (the first 4 bytes such as CAFEBABE) and the version number (the 8th byte) which are visible or can be manually edited in a hexadecimal way, modifying the majority of…

Startup Performance of Tomcat in Docker

Tomcat startup time is reduced by ~30% by enabling the Shared Class Cache (SCC) in the Docker images. In my earlier blog , I measured the Performance of Tomcat with Tradelite7 Application without using any docker images and we saw the boost of Startup time with default Shared Cache in OpenJ9. In this article, let’s…

Default Java Maximum Heap Size is changed for Java 8

Background The Maximum Java Heap Size (Xmx) is the maximum amount of memory that Java application can uses. A lower Xmx value will cause a decrease in performance due to JVM has to force frequent garbage collections in order to free up space, also if the Xmx value is lower than the amount of live…

AArch64 Early Access in OpenJ9 0.20.0

I am excited to announce that the OpenJ9 0.20.0 JDK 11 release contains an early access version for ARM AArch64 Linux platforms!  This release begins to bring the same performance, features, and stability of the OpenJ9 Java VM already available on other platforms to 64-bit ARMv8 processors. The work builds upon the AArch64 operating system…

A glimpse into performance of JITServer technology

In a previous blog we took a sneak-peek into JITServer technology which relieves the JVM from the negative effects of JIT compilation (interference due to JIT usage of CPU and memory) by offloading it to a remote process. In this article we are going to put this technology to the test, measuring a few key…