#JITWatch

Chris Newlandchriswhocodes
2025-01-31

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

blog.jetbrains.com/platform/20

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

Chris Newlandchriswhocodes
2024-10-13

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.

github.com/AdoptOpenJDK/jitwat

Screenshot of JITWatch demonstrating a Valhalla build of JDK23 vectorising an array-incrementing loop. Example code by René Kraneis
Chris Newlandchriswhocodes
2024-03-21
Chris Newlandchriswhocodes
2024-01-31

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

Chris Newlandchriswhocodes
2024-01-06

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

github.com/AdoptOpenJDK/jitwat

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

Screenshot of #JITWatch, a tool for understanding the JIT compiler decisions made by the Java JVM.
Chris Newlandchriswhocodes
2023-11-20

Thanks for the mention!

Reasons you might want to follow me are:

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

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

- Check JEP activity chriswhocodes.com/jepsearch.ht

- Explore Java bytecode byte-me.dev/

- Understand JIT compiler decisions made by the JVM github.com/AdoptOpenJDK/jitwat

Chris Newlandchriswhocodes
2023-06-29

@tarczynski Thanks! I needed a new class library for so I created github.com/chriswhocodes/Class 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!

2023-06-12

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

foojay.io/today/breaking-the-c

#foojaytip

Chris Newlandchriswhocodes
2022-12-21

@geoffreydesmet Once you've fixed all the low hanging fruit, Java performance == JIT performance so take a look at the compiler decisions made by the VM using free visualisation tools like (github.com/AdoptOpenJDK/jitwat) (full disclosure, I'm the author :)

Chris Newlandchriswhocodes
2022-12-19

Hey new Mastodon friends! Here's a little :)

* 25 years of , mostly in realtime market data but also some fun R&D stuff.

* Java Champion who loves digging deep into the and sharing what I learn.

* Creator of open source tools like , , , (chriswhocodes.com)

* Co-wrote a book on Java Performance (Optimizing Java).

* Love retro hardware, synths, and the !

Appreciate boosts to make new connections here!

joschijoschi
2020-11-02

RT @chriswhocodes@twitter.com

finally gets a binary release on GitHub!
Version 1.4.0 rolls up all the recent fixes into an executable shaded jar including for JDK 11+ github.com/AdoptOpenJDK/jitwat

🐦🔗: twitter.com/chriswhocodes/stat

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst