OpenJ9 class sharing is enabled by default

Class sharing is a feature in Eclipse OpenJ9 that improves your application’s startup performance. It also reduces the memory footprint if the same cache shared across multiple JVMs. Traditionally, this feature is turned on by explicitly specifying option -Xshareclasses in the command line. Default Class Sharing Class data sharing is enabled by default for bootstrap…

Categoriesvm

Debugging Java Applications using Watched Fields

Debugging can be quite tedious, complex and cumbersome. Detailed within this blog we will explore how to make Java debugging a bit easier by leveraging the JVM’s embedded debugging tools. Native C/C++ debuggers utilize operating system hooks to debug an application. The Java Virtual Machine (JVM) includes it’s own unique and powerful toolkit for debugging;…

Comparing Jenkins startup in Docker

Containers are increasingly becoming the preferred way of deploying applications. They facilitate consistency between development and operations, allow for an easy way to build layers for reuse, and make it very easy for users to try out an application without having to deal with setting up all the prerequisites. However, just because applications have moved…

Inspecting OpenJ9 performance with perf on Linux – JIT Compiled Methods

In the first post of this series we learned how to profile modules within the JVM itself using perf. This is useful for diagnosing JVM related problems. However in typical applications the user application code (JCL included) will dominate the profile, so it is often desirable to want to profile the user application code as…

A Guide to Double Map Arraylets

What are arraylets? When an array or any object is created in a Java program, one of the places the Garbage Collector (GC) stores objects is in the heap. Individual objects are stored in a contiguous block of memory, which makes it easier to reference them. Arrays as such are also stored in a contiguous…

Categoriesgc