Daniel Strmečki

Just-in-time Compilation in JVM

Is Java compiled or interpreted? The JVM cleverly uses both, finding your code's 'hotspots' and compiling them into native code at runtime for maximum performance.

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.

d

Saby Company
Delebio, Italy

Junior

asasd

Expire

Remote
Junior

test

Milly
Vienna, Austria

Intermediate

Featured Partners

Related Articles

View all articles
BB
Benedikt Bischof
Java Basics
In 1991,James Gosling invented a high-level, general-purpose, object-oriented andsecure programming language and called it OAK (after a tree in front of hiswindow). And four years later, in 1995, it was renamed after one of the GreaterSunda Islands: ...
Java Basics
BB
Benedikt Bischof
Using Java 17 latest features in real world projects
Welcome to this issue of the WeAreDevelopers Live Talk series. This article recaps an interesting talk by Ron Veen who introduced the audience to some of the most interesting features that got added to the Java language.About the speaker:Ron is a hig...
Using Java 17 latest features in real world projects
TL
Thomas Limbüchler
Top in-demand programming languages to learn in 2021
Long-established programming languages such as Java, C, or JavaScript are usually the right choice for beginners. But are they still future-proof? These are the players of tomorrow that you should learn in 2021.New programming languages are becoming ...
Top in-demand programming languages to learn in 2021

From learning to earning

Jobs that call for the skills explored in this talk.