WeAreDevelopers LIVE Sep 1, 2021

Just-in-time Compilation in JVM

Daniel Strmečki

Is Java compiled or interpreted? The answer is uniquely both. Discover how the JVM's tiered JIT compilation dynamically transforms bytecode into optimized machine code.

Pause
Mute Enter Fullscreen
#1 about 4 min

Differences between compiled and interpreted programming languages

Compilers convert code directly to machine native form while interpreters execute instructions piece by piece during runtime.

#2 about 4 min

Java portability and JVM bytecode execution architecture

Java achieves cross-platform compatibility by compiling source files into specialized bytecode that the Java Virtual Machine interprets natively.

#3 about 3 min

Enhancing JVM performance with just-in-time compilation

The JIT compiler boosts performance by dynamically translating frequently executed hotspot routines into machine-native instructions during runtime.

#4 about 3 min

Benchmarking JIT performance against C++ and JavaScript

Disabling the JIT compiler reveals vast algorithmic slowdowns when compared to the highly optimized execution speeds of native languages like C++.

#5 about 3 min

Comparing client and server JIT compiler implementations

Client compilation prioritizes fast application startup times while server compilation focuses on deep code optimization for long-running workloads.

#6 about 4 min

Optimizing Java performance with tiered compilation concepts

Tiered compilation blends rapid startup with long-term efficiency by progressively replacing quickly compiled blocks with heavily optimized instructions as profiling data accumulates.

#7 about 3 min

Exploring five distinct compilation levels within the JVM

The JVM escalates source logic through multiple interpretation and profiling stages depending on algorithm complexity and available compilation queues.

#8 about 2 min

Managing code caching and assumption-based method deoptimization

The JVM automatically purges compiled methods from the internal cache when changing runtime behaviors invalidate the compiler's initial optimization assumptions.

#9 about 2 min

Tweaking JVM compilation thresholds and runtime execution flags

Software engineers can optionally bypass optimization layers or edit threshold thresholds to restrict how many invocations are required before aggressive compilation starts.

#10 about 6 min

Tracing method lifecycles using printed JVM compilation logs

Activating print parameters exposes detailed output revealing the exact timestamp, active compilation tier, and deoptimization triggers for specific application methods.

#11 about 9 min

Discussion on JIT memory parameters and cross-language benchmarking

The final sessions explore topics covering internal heap allocation limits for compiled code pools, machine code portability constraints, and overall language efficiency metrics.

Matching moments

4:02 min

Understanding Java virtualization and just-in-time compiler performance challenges

Eric Deandrea Eric Deandrea · WWC 2025

2:02 min

Understanding Java virtual machine just-in-time compilation

Timo Salm Timo Salm · LIVE

2:07 min

Understanding JIT compilation and breakpoint de-optimization

Johannes Bechberger · LIVE

1:34 min

Improving runtime performance through just-in-time compilation

Gaurav Gahlot Gaurav Gahlot · WWC Europe 2026

2:10 min

Optimizing Java tiered compilation in short-lived environments

Vadym Kazulkin Vadym Kazulkin · LIVE

6:39 min

Comparing Java adaptive compilation with ahead-of-time builds

Josh Long · WWC 2022

Upcoming sessions on this topic

Open session

World Congress 2026 North America

Look What Java Can Do Now: Live-Coding a GenAI MCP Server with the JAQ Stack

Suren Konathala

Senior Engineering Leader, Marketing & AdTech, AI GTM & Digital Experience Platforms, Java x AI

Suren Konathala
Open session

World Congress 2026 North America

When Humans Stop Writing Code: Rethinking Languages, Compilers, and Responsibility

Simon Auer

Organizer of flutter vienna meetup and CEO of marqably

Simon Auer
Open session

World Congress 2026 North America

How to generate business value through performance optimizations

Nikolai Sidiropulo

Software Engineer at Meta

Nikolai Sidiropulo
Open session

World Congress 2026 North America

KV Cache Is Not About Speed: It's About Surviving Inference Costs

David vonThenen

AI/ML Leader | Keynote Speaker | OSS Engineer & Developer Advocate | Agentic AI, Deep Learning, Production AI | Python, Go, C++

David vonThenen
Open session

World Congress 2026 North America

public void saveMoney(AI): The Developer's Guide to Unit Economics

Hrushikesh Pokala

Senior Software Engineer Lead at Equifax

Hrushikesh Pokala
Open session

World Congress 2026 North America

Beyond Vibe Coding: Using CLI Tools as Your AI Counterpart in Pair Programming

Ron Veen

Java enthusiast and Special agent for Team Rockstars IT

Ron Veen