Brief Intro to JITaaS and Double Map

Continuing my team’s work from the 2018 Extreme Blue (EB) term, I spent the first two weeks of my co-op wrapping up our JITaaS project so that it could be merged. During EB, my team was responsible for implementing a prototype for JITaaS (Just in Time Compiler as a Service). Runtimes are comprised of various…

Concurrent Scavenge Garbage Collection Policy

This post is meant to serve as a technical overview of the Concurrent Scavenge (CS) Garbage Collection (GC) policy, from the perspective of a Just-In-Time (JIT) compiler. It explains various CS and GC concepts, serving as background to later discussion on implementation details in JIT compiler’s Code Generator (CodeGen) and Optimizer, as well as the…

OpenJ9 shared classes with Eclipse Equinox 4.9+

The blog post Eclipse OpenJ9 performance; a bake-off on Windows mentions the Class Data Sharing (CDS) adapter required to enable OpenJ9 shared classes support for the OSGi Equinox framework. Since Eclipse Equinox 4.9 2018-09, the CDS adapter is included with Equinox builds. When running with an Eclipse OpenJ9 JVM, to enable shared classes support for the…

Shared classes cache now supports fat jar

Recently OpenJ9 extended the class sharing feature to include fat jars (issue here). Starting from v0.9.0, applications running with fat jar, like Spring Boot, will now also benefit from the faster start-up time and reduced memory footprint from the class sharing feature of Eclipse OpenJ9. OpenJ9 class sharing The class sharing feature of Eclipse Openj9…

Categoriesvm

Inspecting OpenJ9 performance with perf on Linux

Performance is critical to software. Software must perform better than its competitors to gain a competitive edge and acquire a greater market share. Improving performance and resolving performance regression issues for large software systems can be challenging and time consuming. Profiling tools such as Linux perf can help substantially reduce the time to evaluate and…