Daniel Strmečki
Just-in-time Compilation in JVM
#1about 4 minutes
Understanding compiled versus interpreted programming languages
Programming languages are classified by their level of abstraction, requiring either compilation or interpretation to translate high-level code into machine-executable code.
#2about 4 minutes
How Java uses bytecode for platform portability
Java achieves portability by first compiling source code into platform-neutral bytecode, which is then interpreted and executed by the Java Virtual Machine (JVM).
#3about 5 minutes
Boosting performance with just-in-time compilation
The JIT compiler significantly improves performance by identifying and compiling frequently executed code sections, known as hotspots, into native machine code at runtime.
#4about 2 minutes
Comparing the C1 client and C2 server compilers
The JVM includes two JIT compilers: the C1 (client) compiler for fast startup and the C2 (server) compiler for better long-term performance optimization.
#5about 3 minutes
Achieving the best of both worlds with tiered compilation
Tiered compilation combines the C1 and C2 compilers, initially using C1 for quick startup and later switching to C2 for highly optimized code as more profiling data is collected.
#6about 3 minutes
Exploring the five levels of tiered compilation
The tiered compilation process involves five distinct levels, progressing from interpretation (level 0) through various C1 stages (levels 1-3) to full C2 optimization (level 4).
#7about 1 minute
Understanding deoptimization when assumptions fail
Deoptimization occurs when the JIT compiler's assumptions about code behavior are invalidated, causing the optimized native code to be discarded and the compilation process to restart.
#8about 5 minutes
How to configure and observe JIT compilation behavior
Developers can use JVM flags to disable tiered compilation, adjust compilation thresholds, and enable logging to observe the JIT compiler's behavior in real time.
#9about 2 minutes
Conclusion: Java is both a compiled and interpreted language
Java's hybrid model uses an interpreter for portability and a sophisticated JIT compiler for high performance, making it both a compiled and an interpreted language.
#10about 9 minutes
Audience Q&A on JIT compilation and performance
The speaker answers audience questions regarding compiler memory usage, direct-to-native compilation, performance thresholds, and comparisons with other languages like Go and Kotlin.
Related jobs
Jobs that call for the skills explored in this talk.
Matching moments
07:43 MIN
Distinguishing between interpreters and compilers
Making Sense of Programming Languages
18:25 MIN
Improving performance with ahead-of-time compilation
Going serverless using the Spring Framework ecosystem
24:03 MIN
Tuning JVM compilation and garbage collection
High performance Serverless Java on AWS
27:38 MIN
Understanding GraalVM native image compilation
Kubernetes Native Java
15:53 MIN
Comparing native and managed compiler architectures
Building a Compiler with C#
05:43 MIN
How Dart compiles code for development and production
Dart - a language believed dead, experiences a new bloom
09:51 MIN
Java's adaptation for cloud-native and serverless computing
Build ultra-fast In-Memory Database Apps and Microservices with Java
03:57 MIN
Understanding Dart's JIT and AOT compilation model
Dart - a language believed dead, experiences a new bloom
Featured Partners
Related Videos
High performance Serverless Java on AWS
Vadym Kazulkin
Debugging Unveiled: Exploring Debugger Internals and Hidden Gems
Johannes Bechberger
Java 21: The Revolution of Virtual Threads - A Deep Dive
Christian Woerz
2021: Familiar APIs on Kickass Runtimes #slideless
Adam Bien
Beam Me Up, Java! Unraveling the Warp-Speed Evolution: A Journey through Java LTS Versions 11 to 21
Jonathan Vila
High performance Serverless Java on AWS
Vadym Kazulkin
Give your build some love, it will give it back!
Amanda Martin
Why Kotlin is the better Java and how you can start using it
Iris Hunkeler
Related Articles
View all articles.gif?w=240&auto=compress,format)
.gif?w=240&auto=compress,format)


From learning to earning
Jobs that call for the skills explored in this talk.


Senior Java Entwickler / Backend Developer (all genders)
wunschlösung GmbH
Jena, Germany
Intermediate
Senior
Java

Java/Kotlin Software Developer (m/w/d) in einem Cloud-Native-Stack
PROSOZ Herten GmbH
Herten, Germany
Junior
Intermediate
Senior
Java
Scrum
Kotlin
Microservices

Senior Java Entwickler / Backend Developer (all genders)
wunschlösung GmbH
Jena, Germany
Intermediate
Senior
Java
Docker
MongoDB


Software Developer (IntelliJ Platform - Version Control Experience) New
JetBrains GmbH
GIT
Gitlab
Kotlin
GraphQL


