A couple of nice PRs received for JITWatch, a program for understanding the decisions made by the HotSpot JVM JIT Compiler(s) as they optimised your program at runtime.

New functionality includes tooltip support for disassembled ARM code, and Korean localisation.

New release 1.5 available at https://github.com/AdoptOpenJDK/jitwatch

#jvm #jit #jitwatch #java #compiler #opensource

Vladimir Dvorak has created a fascinating deep dive into the startup times of JetBrains' IntelliJ IDEA.

https://blog.jetbrains.com/platform/2025/01/jitwatch4i-analyzing-intellij-idea-s-startup/

In doing so he created a modified version of JITWatch called JITWatch4i which addresses several shortcomings in the tool.

#java #JITWatch #performance

JITWatch4i: Analyzing IntelliJ IDEA's Startup | The JetBrains Platform Blog

Introduction A typical Java or Kotlin programmer spends most of their productive time either creating application code in an editor or searching for bugs in a debugger. Occasionally, they might div

The JetBrains Blog

Thanks to René Kraneis for this new JITWatch example demonstrating vectorisation of a loop incrementing an array with Valhalla-enabled JDK23.

JITWatch is a free and open-source program for inspecting the Just In Time (JIT) compiler decisions made by the JVM as it dynamically optimised your program at runtime.

https://github.com/AdoptOpenJDK/jitwatch

#java #performance #Valhalla #JITWatch

GitHub - AdoptOpenJDK/jitwatch: Log analyser / visualiser for Java HotSpot JIT compiler. Inspect inlining decisions, hot methods, bytecode, and assembly. View results in the JavaFX user interface.

Log analyser / visualiser for Java HotSpot JIT compiler. Inspect inlining decisions, hot methods, bytecode, and assembly. View results in the JavaFX user interface. - AdoptOpenJDK/jitwatch

GitHub
@sasuke___420 Hi, have you already submitted a solution? After #AdventOfCode I decided not to get nerd-sniped by #1brc but I did run a few of the earlier leading OpenJDK-based solutions through #JITWatch and found you could squeeze out some single digit percentage gains by changing the JVM options that control inlining.

I've just released #JITWatch 1.4.9 binaries which rolls up a lot of fixes and makes the sandbox easier to use with external source files (such as #1brc).

https://github.com/AdoptOpenJDK/jitwatch/releases/tag/1.4.9

Learn about how the #Java #JVM JIT compilers optimise your program at runtime using techniques like inlining, intrinsics, escape analysis, DCE, lock elision, loop unrolling, vectorisation, and lots more :)

Release JITWatch 1.4.9 · AdoptOpenJDK/jitwatch

Rolls up all the fixes since the last binary release in Jan 2022. Improved Sandbox for experimenting with code outside the included samples. Removed some bytecode-driven unit tests that were failin...

GitHub

Thanks for the mention!

Reasons you might want to follow me are:

#VMOptionsExplorer - Learn about all the switches that control the JVM: https://chriswhocodes.com/

#JaCoLine - Java Command Line Inspector - check your Java command line works with later versions https://jacoline.dev/inspect

#JEPSearch - Check JEP activity https://chriswhocodes.com/jepsearch.html

#ByteMe - Explore Java bytecode https://byte-me.dev/

#JITWatch - Understand JIT compiler decisions made by the JVM https://github.com/AdoptOpenJDK/jitwatch

VM Options Explorer - OpenJDK11 HotSpot

@tarczynski Thanks! I needed a new class library for #JITWatch so I created https://github.com/chriswhocodes/ClassAct and then built Byte-Me as a simple test harness which got a bit out of control and became its own project :) Building your own tools is a great way to learn!
GitHub - chriswhocodes/ClassAct: Java class file parser and API

Java class file parser and API. Contribute to chriswhocodes/ClassAct development by creating an account on GitHub.

GitHub

Discover the intriguing world of #JVM performance optimization in our latest interview with @chriswhocodes conducted by @bazlur_rahman , we delve into the creation of JITWatch, the future of JVM, and the impact of #AI on this field. #Java #JITWatch

https://foojay.io/today/breaking-the-code-how-chris-newland-is-changing-the-game-in-jvm-performance/

#foojaytip

Breaking the Code: How Chris Newland is Changing the Game in JVM Performance!

Dive into an exclusive interview with Chris Newland, the creator of JITWatch. Explore JVM performance optimization, and gain expert advice.

foojay
Breaking the Code: How Chris Newland is Changing the Game in JVM Performance!

Dive into an exclusive interview with Chris Newland, the creator of JITWatch. Explore JVM performance optimization, and gain expert advice.

foojay