Session + Live Q&A
Understanding JIT Optimisations By Decompilation
How does the JIT compiler transform your code as it optimises it? We can try to understand what the compiler has done by looking at JIT logs, compiler data structures, and directly at the machine code, but these are all advanced options needing expert-level knowledge of compilers. How can we make it easier for everyone else? We'll show how at Shopify we have developed a pseudo-code decompiler for optimised Java code, and how it helps us understand how the Java JIT compiler is working and how we need to improve our code.
Main Takeaways
1 Find out about Shopify’s Java JIT decompiler and analysis tool.
2 Learn how to use Shopify’s tool to improve the performance of a Java application.
What is the focus of your work these days?
I work at Shopify, which is a large Canadian e-commerce company, I work on the Ruby programming language, trying to optimize it, to make it work more efficiently. But I also do a lot of work in the Java system because the technology we use to optimize Ruby is based on Java technology such as Graal and Truffle.
What is the motivation for your talk?
Understanding what the Java JIT compiler is doing. There are a few techniques we can use, such as looking at the machine code or looking at the compiler logs, or we can also look at the compiler data structures. But these are quite advanced topics. It requires really quite deep expert knowledge to do it. At Shopify, we're building a tool that we hope helps make it easier to understand what the compiler is doing. What it does is give you back Java code from your compiled Java code after it's been optimized. We hope this makes it easier for people to understand what the compiler is doing.
What is the persona and the level of the target audience?
I think it's applicable to several levels. If you are aware that there is a JIT compiler, but not what it's capable of or anything about how it works, then you can use the tool to just gain some more understanding. So it should be approachable to anyone who is aware there's a JIT compiler. If you're an expert who works with JIT compilers trying to tune them and trying to get the best performance out of your app, then you can actually use the tool as something practical in your day-to-day work. So it should be approachable to anyone who's got any kind of interest in Java.
Speaker
Chris Seaton
Researcher (Senior Staff Engineer) @Shopify
Chris is a Researcher (Senior Staff Engineer) at Shopify, where he works on the Ruby programming Language, and a Visitor at the University of Manchester.He was formerly a Research Manager at the Oracle Labs Virtual Machine Research Group, where he led the TruffleRuby implementation of Ruby, and...
Read moreFind Chris Seaton at:
From the same track
Cloud Native JVMs (Part 1): Cloud Native Compilation
Monday Nov 1 / 02:10PM EDT
JVMs power and run our applications and common infrastructure. JVM based languages (Java, Scala, Kotlin, Clojure, Groovy, JRuby, etc.) power dominant portions of most companies' compute footprint. And in the cloud, that same dominance continues. But JVMs, like other managed code...
Gil Tene
CTO @AzulSystems
Level Up Your Java Performance with TornadoVM
Monday Nov 1 / 01:10PM EDT
Heterogeneous hardware such as Graphics Processing Units (GPUs) and Field Programmable Gate Arrays (FPGAs) are widely used for specific domains of applications such as Machine Learning, Data Science, Numerical Analytics and Fintech, due to the offer of a higher level of performance.The increased...
Juan Fumero
Lead Architect of the TornadoVM Project & Research Fellow @OfficialUoM
Java 17: The Path, Features, Tips and Tricks Panel
Monday Nov 1 / 03:10PM EDT
Java 17 has arrived. With 14 new JEPs and thousands of updates, Java 17 delivers performance, stability, and security enhancements to continue to improve on the already solid platform. Java 17 is the latest long-term support (LTS) release under Java’s 6-month release cadence. Join our...
Simon Ritter
Deputy CTO @Azul
Kristen O'Leary
Senior Developer Relations Engineer @Google
Rory Preddy
Senior Cloud Advocate @Microsoft