SlideShare a Scribd company logo
Artur Skowroński
JVM Iceberg
We need to go deeper
JVM Iceberg... we need to go deeper
JVM Iceberg... we need to go deeper
JVM Iceberg... we need to go deeper
JVM Iceberg... we need to go deeper
JVM Iceberg... we need to go deeper
Spring Spring Boot
Micronaut RXJava
Project Panama Project Amber
Project Loom
Project Valhalla
Jakarta EE
Micropro
fi
le
Microsoft ❤ Java
Quarkus Helidon
JSR381 Visual Recognition API
Project Lanai
GraalVM
espresso
Project Layden
Project CRaC Project Liliput
19
19
129 Slajdów / 45 minut
20 Tematów
JVM Iceberg... we need to go deeper
Spring Spring Boot
Micronaut RXJava
Spring Spring Boot
Micronaut RXJava
Project Panama Project Amber
Project Loom
Project Amber
Celem Projektu Amber jest zbadanie i
inkubacja mniejszych, zorientowanych na
produktywność funkcji języka Java.
Project Amber
286: Local-Variable Type Inference (var)
395: Records
378: Text Blocks
361: Switch Expressions 427: Pattern Matching for switch (Third Preview)
Project Amber
Project Amber
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
void main() {
println("Hello World");
}
Project Loom
Celem Project Loom jest stworzenie
wysokowydajnego, lekkiego modelu
współbieżności w Javie.
Project Loom
NASZA APLIKACJA
JVM
System Operacyjny
Wątki Systemu
Operacyjnego
JVM Thread = OS Thread
Scheduler
Wątki Systemu
Operacyjnego
Scheduler
Project Loom
NASZA APLIKACJA
JVM
System Operacyjny
JVM Thread = OS Thread
Scheduler
Project Loom
Project Loom
Virtual Threads
Structure Concurrency
Scope Locals
Project Panama
Celem Project Panama jest upraszczenie
procesu łączenia programów w Java z
komponentami nie-Javowymi
Project Panama
NASZA APLIKACJA
JVM
System Operacyjny
Pamięć
Zarządzana
Pamięć
Project Panama
NASZA APLIKACJA
JVM
System Operacyjny
Pamięć
Zarządzana
Pamięć
Project Panama
NASZA APLIKACJA
JVM
System Operacyjny
Pamięć
Zarządzana
Pamięć
Project Panama
NASZA APLIKACJA
JVM
System Operacyjny
Pamięć
Zarządzana
Pamięć
Project Panama
NASZA APLIKACJA
JVM
System Operacyjny
Zewnętrzne
programy
Spring Spring Boot
Micronaut RXJava
Project Panama Project Amber
Project Loom
Project Valhalla
Jakarta EE
GraalVM
Project Valhalla
Project Valhalla
JVM
Project Valhalla
JVM
Stos Sterta
Project Valhalla
JVM
Stos Sterta
Chars
Integers
Floats
Objects
Project Valhalla
JVM
Stos Sterta
Chars
Integers
Floats
Objects
References
Project Valhalla
JVM
Stos Sterta
Chars
Integers
Floats
Objects
References
NASZA APLIKACJA
Project Valhalla
JVM
Stos Sterta
Chars
Integers
Floats
Objects
References
NASZA APLIKACJA
Project Valhalla
JVM
Stos Sterta
Chars
Integers
Floats
Objects
References
NASZA APLIKACJA
Project Valhalla
JVM
Stos Sterta
Chars
Integers
Floats
Objects
References
NASZA APLIKACJA
Value Types
Project Valhalla
JVM
Stos Sterta
Chars
Integers
Floats
Objects
References
NASZA APLIKACJA
Value Types = Agregaty Danych
Project Valhalla
GraalVM
GraalVM
GraalVM
Kubernetes
Project CRaC
JVM
Byte Code Interpreter
Just-in-Time Compiler
Compiled Code 🚀
GraalVM
Project CRaC
GraalVM
SubstratVM
Just-in-Time Compiler Java
GraalVM
GraalVM
SubstratVM
GraalVM
Just-in-Time Compiler Java
Just-in-Time Compiler Python
Just-in-Time Compiler Ruby
GraalVM
GraalVM
SubstratVM
GraalVM
Just-in-Time Compiler Java
Just-in-Time Compiler Python
Just-in-Time Compiler Ruby
GraalVM
GraalVM
System Operacyjny
JVM
NASZA APLIKACJA
GraalVM
GraalVM
GraalVM
System Operacyjny
JVM
NASZA APLIKACJA
GraalVM
Kubernetes
NASZA APLIKACJA
Skompilowana
Ahead-of-Time
GraalVM
Just-in-Time Compiler Java
GraalVM
GraalVM
Jakarta EE
Jakarta EE
Jakarta EE
Jakarta EE
Jakarta EE
Jakarta EE
Spring Spring Boot
Micronaut RXJava
Project Panama Project Amber
Project Loom
Project Valhalla
Jakarta EE
Micropro
fi
le
Microsoft ❤ Java
GraalVM
Microprofile
Microprofile
Full Profile
Microprofile
Web Profile
Full Profile
Microprofile
Full Pro
fi
le
Microprofile
Web Pro
fi
le
Microprofile
Microprofile
Web Profile
Full Profile Core Profile
Microsoft ❤ Java
Microsoft ❤ Java
Microsoft ❤ Java
Microsoft ❤ Java
Project Panama Project Amber
Project Loom
Project Valhalla
Jakarta EE
Micropro
fi
le
Microsoft ❤ Java
Quarkus Helidon
GraalVM
Quarkus/Helidon
Quarkus/Helidon
Project Valhalla
Jakarta EE
Micropro
fi
le
Microsoft ❤ Java
Quarkus Helidon
JSR381 Visual Recognition API
Project Lanai
GraalVM
JSR381 Visual Recognition API
JSR381 Visual Recognition API
JSR381 Visual Recognition API
JSR381 Visual Recognition API
JSR381 "VisRec" to standardowy interfejs
API dla podstawowego uczenia
maszynowego (ML), klasy
fi
kacji obrazów
i rozpoznawania obiektów.
JSR381 Visual Recognition API
Project Lanai
Project Lanai
Project Lanai
Project Lanai
Project Lanai
Micropro
fi
le
Microsoft ❤ Java
Quarkus Helidon
JSR381 Visual Recognition API
Project Lanai
espresso
Project Layden
Project Leyden
Celem projektu Leyden jest poprawa czasu
uruchamiania, czasu do osiągnięcia
szczytowej wydajności programów
napisanych Java.
Project Leyden
Kubernetes
NASZA APLIKACJA
Skompilowana
Ahead-of-Time
Project Leyden
Project Leyden
Compile time Runtime time
Class Data Sharing
Generation Time Link
Kompilacja Ahead-of-
Time
Application Class Data
Sharing
JiT
Project CRaC
?
Project Leyden
Compile Runtime time
Class Data Sharing
Link
Kompilacja
Ahead-of-Time
Application Class
Data Sharing
JiT
Project CRaC
?
Project Leyden
Compile Runtime time
Class Data Sharing
Link
Kompilacja
Ahead-of-Time
Application Class
Data Sharing
JiT
Project CRaC
?
Kod
Project Leyden
Compile Runtime time
Class Data Sharing
Link
Kompilacja
Ahead-of-Time
Application Class
Data Sharing
JiT
Project CRaC
?
Skompilowany kod
Project Leyden
Compile Runtime time
Class Data Sharing
Link
Kompilacja
Ahead-of-Time
JiT
Kod
Project Leyden
Compile Runtime time
Class Data Sharing
Link
Kompilacja
Ahead-of-Time
JiT
Interpretowany Bajtkod
Project Leyden
Compile Runtime time
Class Data Sharing
Link
Kompilacja
Ahead-of-Time
JiT Skompilowany kod
Project Leyden
Kompilacja Ahead-of-
Time
Application Class Data
Sharing
JiT
Project CRaC
Condensers
Project Leyden
Kompilacja Ahead-of-
Time
Application Class Data
Sharing
JiT
Project CRaC
Condensers
espresso
GraalVM Runtime (SubstratVM)
espresso
GraalVM JIT Compiler
GraalVM Runtime (SubstratVM)
espresso
GraalVM JIT Compiler
Truf
fl
e
GraalVM Runtime (SubstratVM)
espresso
GraalVM Runtime (SubstratVM)
GraalVM JIT Compiler
Truf
fl
e
espresso
NASZA APLIKACJA
espresso
GraalVM JIT Compiler
Truf
fl
e
Espresso
GraalVM Runtime (SubstratVM)
espresso
GraalVM JIT Compiler
Truf
fl
e
Espresso
GraalVM Runtime (SubstratVM)
espresso
NASZA APLIKACJA
Espresso
espresso
NASZA APLIKACJA
Espresso
espresso
espresso
Quarkus Helidon
JSR381 Visual Recognition API
Project Lanai
espresso
Project Layden
Project CRaC Project Liliput
Project Liliput
Obiekt Java Obiekt Java Obiekt Java Obiekt Java
Project Liliput
Obiekt Java Obiekt Java Obiekt Java Obiekt Java
128 Bits 128 Bits 128 Bits 128 Bits
Project Liliput
64 Bity dla
Garbage Collectora / Locka / etc
64 Bity dla
Wskaźnika Klasy
Project Liliput
64 Bity dla
Garbage Collectora / Locka / Identity
32 Bity dla
Wskaźnika Klasy
Project Liliput
32 Bity dla
Garbage Collectora / Locka / Identity
32 Bity dla
Wskaźnika Klasy
Project CRaC
Project Coordinated Restore at Checkpoint
Project CRaC
JVM
Byte Code Interpreter
Just-in-Time Compiler
Compiled Code 🚀
Project CRaC
JVM
Byte Code Interpreter
Compiled Code 🚀
Project CRaC
Project CRaC
JVM
Byte Code Interpreter
Just-in-Time Compiler
Compiled Code 🚀
Project CRaC
JVM
Byte Code Interpreter
Just-in-Time Compiler Compiled Code 🚀
Project CRaC
JVM
Byte Code Interpreter
Compiled Code 🚀
Project CRaC
JVM
Byte Code Interpreter
Compiled Code 🚀
JVM Iceberg... we need to go deeper
vived.io
JVM Iceberg... we need to go deeper
JVM Iceberg... we need to go deeper
Thank you 🙇
@ArturSkowronski

More Related Content

PDF
JVM Iceberg... we need to go deeper
PPTX
Jak podwoić wartość kodu .NET?
PDF
e2e frameworks - czyli kij ma dwa końce
PPTX
Budowanie sieci Grid
PPSX
Webinar - Podstawy Node.js
PDF
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQL
PDF
Laravel czy Lumen, oto jest pytanie
PDF
Laravel Poznań Meetup #8 - "Laravel czy lumen, oto jest pytanie"
JVM Iceberg... we need to go deeper
Jak podwoić wartość kodu .NET?
e2e frameworks - czyli kij ma dwa końce
Budowanie sieci Grid
Webinar - Podstawy Node.js
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQL
Laravel czy Lumen, oto jest pytanie
Laravel Poznań Meetup #8 - "Laravel czy lumen, oto jest pytanie"

Similar to JVM Iceberg... we need to go deeper (20)

PDF
Scala
PDF
Kopiąc Trufle - Odkrywanie tajemnic najmniej zrozumiałego elementu GraalVM
ODP
Aplikacje internetowe (2010)
PDF
Produkcja aplikacji internetowych
PDF
Programowanie Równolegle - Parallel Extensions
PDF
university day 1
PDF
Jak nadążyć za światem front-endu - WordPress Training Day
PPSX
Node.js w dużej skali
PDF
React Native by Artur Staszczyk
PDF
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
PDF
Michał Dec - Quality in Clouds
PPTX
Automatyczne testy end-to-end aplikacji JavaScript.
PDF
Testowanie rozwiązań serverless z LocalStack
PPTX
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
PDF
Ewolucja architektury Getresponse Api
PDF
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
PPTX
Co nowego w VS 2013 dla programistów ASP.NET?
PPTX
Silverlight z bliska i na wylot
PDF
Nowości w Javie 8 okiem programisty
PPTX
Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC
Scala
Kopiąc Trufle - Odkrywanie tajemnic najmniej zrozumiałego elementu GraalVM
Aplikacje internetowe (2010)
Produkcja aplikacji internetowych
Programowanie Równolegle - Parallel Extensions
university day 1
Jak nadążyć za światem front-endu - WordPress Training Day
Node.js w dużej skali
React Native by Artur Staszczyk
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
Michał Dec - Quality in Clouds
Automatyczne testy end-to-end aplikacji JavaScript.
Testowanie rozwiązań serverless z LocalStack
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
Ewolucja architektury Getresponse Api
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
Co nowego w VS 2013 dla programistów ASP.NET?
Silverlight z bliska i na wylot
Nowości w Javie 8 okiem programisty
Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC
Ad

More from Artur Skowroński (20)

PDF
Build your own NES Emulator... with Kotlin
PDF
Running Java on Arm - Is it worth it in 2025?
PDF
JVM in the Age of AI: Babylon, Valhalla, TornadoVM and friends
PDF
The State of the Green IT at the beginning of 2024
PDF
My chcemy grać w Zielone! Czyli stan świata Green Technology końcówką 2023
PDF
GraalVM, CRaC, Leyden and friends
PDF
Od Czarnoksiężnik z krainy Oz do modeli na produkcji
PDF
Panie, kto tu Panu tak ... - czyli porozmawiajmy o Legacy
PDF
Panie, kto tu Panu tak ... - czyli porozmawiajmy o Legacy
PDF
Ciąg dalszy nastąpi - o wielowątkowości, Projekcie Loom i kotlinowych Korutynach
PDF
Artur Skowroński – Ten Typ tak ma - O systemach typów na przykładzie TypeScri...
PDF
Ten Typ tak ma - O systemach typów na przykładzie TypeScript’a
PDF
Type Systems on the example of TypeScript
PDF
Google Assistant po polsku - developerski punkt widzenia
PDF
Google Assistant & Alexa - Asystenci głosowi: możliwości, podobieństwa, różnice
PDF
To Be Continued - multithreading with Project Loom and Kotlin's Coroutines
PDF
To be Continued - multithreading with Project Loom and Kotlin's Coroutines
PDF
Blockchain: Developer's Perspective (Java Edition)
PDF
Blockchain: Developer Perspective
PDF
Alexa, nice to meet you!
Build your own NES Emulator... with Kotlin
Running Java on Arm - Is it worth it in 2025?
JVM in the Age of AI: Babylon, Valhalla, TornadoVM and friends
The State of the Green IT at the beginning of 2024
My chcemy grać w Zielone! Czyli stan świata Green Technology końcówką 2023
GraalVM, CRaC, Leyden and friends
Od Czarnoksiężnik z krainy Oz do modeli na produkcji
Panie, kto tu Panu tak ... - czyli porozmawiajmy o Legacy
Panie, kto tu Panu tak ... - czyli porozmawiajmy o Legacy
Ciąg dalszy nastąpi - o wielowątkowości, Projekcie Loom i kotlinowych Korutynach
Artur Skowroński – Ten Typ tak ma - O systemach typów na przykładzie TypeScri...
Ten Typ tak ma - O systemach typów na przykładzie TypeScript’a
Type Systems on the example of TypeScript
Google Assistant po polsku - developerski punkt widzenia
Google Assistant & Alexa - Asystenci głosowi: możliwości, podobieństwa, różnice
To Be Continued - multithreading with Project Loom and Kotlin's Coroutines
To be Continued - multithreading with Project Loom and Kotlin's Coroutines
Blockchain: Developer's Perspective (Java Edition)
Blockchain: Developer Perspective
Alexa, nice to meet you!
Ad

JVM Iceberg... we need to go deeper