Innovations for Java running in containers

This blog is co-authored by Hang Shao, Marius Pirvu, Tobi Ajila and Vijay Sundaresan. 1.     Introduction Over a decade ago, the common form of deployment was large monolithic applications that handled all the business logic. In this model applications typically had long deployment windows and they were typically deployed on large on-prem server farms. Since…

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…

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…

OpenJ9 VM Internship: Inline Types

My name is Adithya Venkatarao and I’m a 4th year Computer Science student from the University of Waterloo at the time of writing. After working in a variety of back-end and full-stack positions throughout my previous internships, I really wanted to further diversify my skillset by taking a dive down the tech-stack to work with…

Categoriesvm

Relationship verification… Let’s get lazy!

It’s complicated… Relationship verification is very important, but can we be a little lazy about it? Java bytecode verification entails several processes, one of which is class relationship verification. Java Virtual Machine (JVM) startup includes any JVM or application setup preceding the actual execution of the program, and one of these steps is verification. Consequently,…