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
03:15 MIN
Distinguishing between interpreters and compilers
Making Sense of Programming Languages
07:25 MIN
Improving performance with ahead-of-time compilation
Going serverless using the Spring Framework ecosystem
02:51 MIN
Tuning JVM compilation and garbage collection
High performance Serverless Java on AWS
07:22 MIN
Understanding GraalVM native image compilation
Kubernetes Native Java
03:38 MIN
Comparing native and managed compiler architectures
Building a Compiler with C#
01:22 MIN
How Dart compiles code for development and production
Dart - a language believed dead, experiences a new bloom
07:05 MIN
Java's adaptation for cloud-native and serverless computing
Build ultra-fast In-Memory Database Apps and Microservices with Java
02:04 MIN
Understanding Dart's JIT and AOT compilation model
Dart - a language believed dead, experiences a new bloom
Featured Partners
Related Videos
2021: Familiar APIs on Kickass Runtimes #slideless
Adam Bien
High performance Serverless Java on AWS
Vadym Kazulkin
Debugging Unveiled: Exploring Debugger Internals and Hidden Gems
Johannes Bechberger
Give your build some love, it will give it back!
Amanda Martin
Beam Me Up, Java! Unraveling the Warp-Speed Evolution: A Journey through Java LTS Versions 11 to 21
Jonathan Vila
Best of Java 15 and beyond—my favorite features
Michael Inden
Building a Compiler with C#
Florian Rappl
The Cool Thing about Cool Things in Java 16 & 17 LTS
Mohamed Taman
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.

wunschlösung GmbH
Jena, Germany
Intermediate
Senior
Java


wunschlösung GmbH
Jena, Germany
Intermediate
Senior
Java
Docker
MongoDB





PROSOZ Herten GmbH
Herten, Germany
Junior
Intermediate
Senior
Java
Scrum
Kotlin
Microservices
