OpenJDK with it’s Java Virtual Machine is great but there is not only one flavour but many. There is Oracle OpenJDK, Eclipse Temurin, IBM Semeru, Amazon Corretto, Azul Zulu, Alibaba Dragonwell, Huawei Bi Sheng, Tencent Kona and many more. Did you ever ask yourself which one is better, faster, free or something similar? Or do you want to know where the differences are in those distributions, well then this session might bring some answers to your questions. It will give you an idea about what the JVM is and will cover all the available distributions not only of OpenJDK but also of GraalVM and will try to explain the differences and features of the available distributions. It will also try to give you an idea what JVM to use for specific use cases.
19. CLASS LOADER SUBSYSTEM
LOADING
Bootstrap Class Loader
Extension Class Loader
Application Class Loader
LINKING
Veri
fi
cation
Preparation
Resolution
INITIALISING
Initialisation
EXECUTION ENGINE
JVM MEMORY
THE JVM
INTERNAL STRUCTURE
20. CLASS LOADER SUBSYSTEM
LOADING
Bootstrap Class Loader
Extension Class Loader
Application Class Loader
LINKING
Veri
fi
cation
Preparation
Resolution
INITIALISING
Initialisation
EXECUTION ENGINE
JVM MEMORY
Method
Area
STACK
Thread #1
Thread #2
Thread #3
PC REGISTER
Thread #1 PC
Thread #2 PC
Thread #3 PC
Native
Method
Stack
Heap
THE JVM
INTERNAL STRUCTURE
21. EXECUTION ENGINE
Interpreter
Native
Method
Libraries
CLASS LOADER SUBSYSTEM
LOADING
Bootstrap Class Loader
Extension Class Loader
Application Class Loader
LINKING
Veri
fi
cation
Preparation
Resolution
INITIALISING
Initialisation
JVM MEMORY
Method
Area
STACK
Thread #1
Thread #2
Thread #3
PC REGISTER
Thread #1 PC
Thread #2 PC
Thread #3 PC
Native
Method
Stack
Heap
JIT COMPILER
C1
C2
Pro ler
GARBAGE COLLECTOR
Serial
CMS
Z
Parallel
G1
Native
Method
Interface
(JNI)
THE JVM
INTERNAL STRUCTURE
39. DIFFERENCES
• Support Term
• Updates
• Compliance
• Cost
• Performance
• Features
• Alternatives to the standard
THINGS THAT CAN HELP MAKING A DECISION
51. CRITICAL PATCH UPDATE / PATCH SET UPDATE
UPDATES
Fixes Vulnerabilities
Fixes Critical Issues
CPU
52. CRITICAL PATCH UPDATE / PATCH SET UPDATE
UPDATES
PSU
Fixes Vulnerabilities
Fixes Critical Issues
CPU
53. CRITICAL PATCH UPDATE / PATCH SET UPDATE
UPDATES
PSU
Fixes Non Critical Issues
New Features
Fixes Vulnerabilities
Fixes Critical Issues
CPU
CAN INTRODUCE
NEW ISSUES !
55. UPDATES
FOUR TIMES A YEAR
17.0.1 PSU CPU
January
17.0.1 CPU
CRITICAL PATCH UPDATE / PATCH SET UPDATE
56. UPDATES
17.0.1 PSU CPU
January April
17.0.1 CPU
17.0.2 PSU CPU
17.0.2 CPU
Fixes Vulnerabilities/Critical issues
FOUR TIMES A YEAR
CRITICAL PATCH UPDATE / PATCH SET UPDATE
57. UPDATES
17.0.1 PSU CPU
January April July
17.0.1 CPU
17.0.2 PSU CPU
17.0.2 CPU
17.0.3 PSU CPU
17.0.3 CPU
FOUR TIMES A YEAR
CRITICAL PATCH UPDATE / PATCH SET UPDATE
58. UPDATES
17.0.1 PSU CPU
January April July October
17.0.1 CPU
17.0.2 PSU CPU
17.0.2 CPU
17.0.3 PSU CPU
17.0.3 CPU
17.0.4 PSU CPU
17.0.4 CPU
FOUR TIMES A YEAR
CRITICAL PATCH UPDATE / PATCH SET UPDATE
59. UPDATES
PATCH SET UPDATES ARE AVAILABLE FROM
• Most of the available distributions
CRITICAL PATCH UPDATE / PATCH SET UPDATE
64. COMPLIANCE
• Originally developed by Sun Microsystems
• Intellectual Property, licensed by Oracle
• For example 120 000+ individual tests for Java 11
• Any binary must pass the TCK to be allowed to be
labeled "Java SE compatible"
WHAT IT IS
TECHNOLOGY COMPATIBILITY KIT
66. COMPLIANCE
• Are likely to differ across implementations
• Rely on hardware or operating system specific behavior
• Are difficult to port
• Either mask/abstract hardware behavior
• Either mask/abstract operating system behavior
IT TESTS FEATURES THAT
JAVA COMPATIBILITY TEST SUITE
67. COMPLIANCE
• Available at not charge
• Must meet terms of the OCTLA (OpenJDK Community TCK License Agreement)
• Must sign OCA (Oracle Contributor Agreement)
HOW TO GET ACCESS TO THE JCK
JAVA COMPATIBILITY TEST SUITE
68. TCK COMPLIANCE JDK 8
• Bi Sheng
• Corretto
• Dragonwell
• Liberica
• Oracle JDK
• Oracle OpenJDK
• Red Hat
• SAP Machine
• Temurin
• Zulu
• Platform Prime
DISTRIBUTIONS COMPLIANT TO THE TCK
69. TCK COMPLIANCE JDK 9 AND ABOVE
• Corretto
• JetBrains
• Kona
• Liberica
• Microsoft
• Open Logic
• Oracle JDK
• Oracle OpenJDK
• Red Hat
• SAP Machine
• Semeru Certified
• Temurin
• Zulu
• Platform Prime
DISTRIBUTIONS COMPLIANT TO THE TCK
71. COMPLIANCE
• Ensures that all additional qualities are present that
make it suitable for production use
• A collection of over 350 000 tests
• Designed to test real world utilization patterns
• A suite of security and durability tests
WHAT IT IS
AQAVIT TEST SUITE
72. AQAVIT COMPLIANCE JDK 11 AND ABOVE
• Bi Sheng
• Dragonwell
• Microsoft
• Semeru Certified
• Red Hat
• Temurin
• Zulu
DISTRIBUTIONS COMPLIANT TO THE AQAVIT TEST SUITE
76. COST
• Bi Sheng
• Corretto
• Dragonwell
• Gluon GraalVM
• GraalVM CE
• JetBrains
• Kona
• Liberica
• Liberica NIK
• Mandrel
• Microsoft
• Open Logic
• Oracle OpenJDK
• Red Hat
• SAP Machine
• IBM Semeru
• Temurin
• Trava
• Zulu
FREE FOR USE
78. COST
• Azul Platform Prime (based on number of cores)
• IBM Semeru certified
• GraalVM enterprise (based on number of cores)
• Oracle JDK (based on number of cores)
PAY FOR USE
79. COST
• Azul Platform Prime (based on number of cores)
• IBM Semeru certified
• GraalVM enterprise (based on number of employees !)
• Oracle JDK (based on number of employees !)
PAY FOR USE
86. EXECUTION ENGINE
Interpreter
Native
Method
Libraries
CLASS LOADER SUBSYSTEM
LOADING
Bootstrap Class Loader
Extension Class Loader
Application Class Loader
LINKING
Veri
ler
GARBAGE COLLECTOR
Serial
CMS
Z
Parallel
G1
Native
Method
Interface
(JNI)
PERFORMANCE
HIGH PERFORMANCE
102. TENCENT KONA
• SPECIALISED ON ARM
• KONA FIBERS IN JDK 8 and JDK 11 (Coroutine compatible with Loom)
• ZGC FOR ARM (ZGC implementation for ARM architecture)
104. ORACLE GRAALVM
• COMMUNITY + ENTERPRISE EDITION
• POLYGLOT VM (Support for Java, JavaScript, Python, R and Ruby)
• GRAAL JIT COMPILER (Replacement of C2 JIT compiler written in Java)
• GRAAL AOT COMPILER (Ahead of time compilation to native images)