Arraylets: What are They?

Garbage Collectors (GCs) are responsible for allocating and deallocating objects making sure the running application run as smoothly as possible. There are many types of GC configurations out there, mark sweep, generational, region based, concurrent, parallel, reference counting [1] and a combination of these. The way we represent objects in each of these configurations, also…

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…