A glimpse into performance of JITServer technology

In a previous blog we took a sneak-peek into JITServer technology which relieves the JVM from the negative effects of JIT compilation (interference due to JIT usage of CPU and memory) by offloading it to a remote process. In this article we are going to put this technology to the test, measuring a few key…

Free your JVM from the JIT with JITServer technology

State of the art Java Virtual Machines (JVMs) employ Just-in-Time (JIT) compilers to improve the throughput of Java applications. However, JIT compilers do not come for free: they consume resources, in terms of CPU and memory, and therefore they can interfere with the smooth running of Java applications. Wouldn’t it be nice to keep all…

Changes in Tril

This post describes my fall 2019 internship in the Eclipse OpenJ9 team. After 4-months study term at school, I was excited to return to the team. I joined the OMR team and got the chance to work on Tril (the Testarossa Intermediate Language). Tril is a Domain Specific Language (DSL) for generating the Testarossa Intermediate Language…

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;…

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…