Eclipse OpenJ9 uses the omrintrospect library in Eclipse OMR to incorporate native stack traces in the javacores (diagnostic files). This library allows the collection of thread call stacks in a process by suspending and iterating over each thread. On MacOS, all stacks are generated using the libunwind library, a simple and efficient API for register…
Category: vm
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…