Artur Skowroński
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
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 🚀
vived.io
Thank you 🙇
@ArturSkowronski

JVM Iceberg... we need to go deeper