OpenJDK Java, GraalVM, OpenJ9 Benchmarks Java benchmarks by Michael Larabel with OpenJDK, GraalVM CE, OpenJ9. OpenJDK 14.0.1: Processor: Intel Core i9-10980XE @ 4.80GHz (18 Cores / 36 Threads), Motherboard: ASRock X299 Steel Legend (P1.30 BIOS), Chipset: Intel Sky Lake-E DMI3 Registers, Memory: 32GB, Disk: Samsung SSD 970 PRO 512GB, Graphics: NVIDIA NV132 11GB, Audio: Realtek ALC1220, Monitor: ASUS MG28U, Network: Intel I219-V + Intel I211 OS: Ubuntu 20.04, Kernel: 5.4.0-31-generic (x86_64), Desktop: GNOME Shell 3.36.1, Display Server: X Server 1.20.8, Display Driver: modesetting 1.20.8, OpenGL: 4.3 Mesa 20.0.4, Compiler: GCC 9.3.0, File-System: ext4, Screen Resolution: 3840x2160 OpenJDK 15 EA24: Processor: Intel Core i9-10980XE @ 4.80GHz (18 Cores / 36 Threads), Motherboard: ASRock X299 Steel Legend (P1.30 BIOS), Chipset: Intel Sky Lake-E DMI3 Registers, Memory: 32GB, Disk: Samsung SSD 970 PRO 512GB, Graphics: NVIDIA NV132 11GB, Audio: Realtek ALC1220, Monitor: ASUS MG28U, Network: Intel I219-V + Intel I211 OS: Ubuntu 20.04, Kernel: 5.4.0-31-generic (x86_64), Desktop: GNOME Shell 3.36.1, Display Server: X Server 1.20.8, Display Driver: modesetting 1.20.8, OpenGL: 4.3 Mesa 20.0.4, Compiler: GCC 9.3.0, File-System: ext4, Screen Resolution: 3840x2160 OpenJDK 11: Processor: Intel Core i9-10980XE @ 4.80GHz (18 Cores / 36 Threads), Motherboard: ASRock X299 Steel Legend (P1.30 BIOS), Chipset: Intel Sky Lake-E DMI3 Registers, Memory: 32GB, Disk: Samsung SSD 970 PRO 512GB, Graphics: NVIDIA NV132 11GB, Audio: Realtek ALC1220, Monitor: ASUS MG28U, Network: Intel I219-V + Intel I211 OS: Ubuntu 20.04, Kernel: 5.4.0-31-generic (x86_64), Desktop: GNOME Shell 3.36.1, Display Server: X Server 1.20.8, Display Driver: modesetting 1.20.8, OpenGL: 4.3 Mesa 20.0.4, Compiler: GCC 9.3.0, File-System: ext4, Screen Resolution: 3840x2160 OpenJDK 8: Processor: Intel Core i9-10980XE @ 4.80GHz (18 Cores / 36 Threads), Motherboard: ASRock X299 Steel Legend (P1.30 BIOS), Chipset: Intel Sky Lake-E DMI3 Registers, Memory: 32GB, Disk: Samsung SSD 970 PRO 512GB, Graphics: NVIDIA NV132 11GB, Audio: Realtek ALC1220, Monitor: ASUS MG28U, Network: Intel I219-V + Intel I211 OS: Ubuntu 20.04, Kernel: 5.4.0-31-generic (x86_64), Desktop: GNOME Shell 3.36.1, Display Server: X Server 1.20.8, Display Driver: modesetting 1.20.8, OpenGL: 4.3 Mesa 20.0.4, Compiler: GCC 9.3.0, File-System: ext4, Screen Resolution: 3840x2160 GraalVM 20.1 Java 8: Processor: Intel Core i9-10980XE @ 4.80GHz (18 Cores / 36 Threads), Motherboard: ASRock X299 Steel Legend (P1.30 BIOS), Chipset: Intel Sky Lake-E DMI3 Registers, Memory: 32GB, Disk: Samsung SSD 970 PRO 512GB, Graphics: NVIDIA NV132 11GB, Audio: Realtek ALC1220, Monitor: ASUS MG28U, Network: Intel I219-V + Intel I211 OS: Ubuntu 20.04, Kernel: 5.4.0-31-generic (x86_64), Desktop: GNOME Shell 3.36.1, Display Server: X Server 1.20.8, Display Driver: modesetting 1.20.8, OpenGL: 4.3 Mesa 20.0.4, Compiler: GCC 9.3.0, File-System: ext4, Screen Resolution: 3840x2160 GraalVM 20.1 Java 11: Processor: Intel Core i9-10980XE @ 4.80GHz (18 Cores / 36 Threads), Motherboard: ASRock X299 Steel Legend (P1.30 BIOS), Chipset: Intel Sky Lake-E DMI3 Registers, Memory: 32GB, Disk: Samsung SSD 970 PRO 512GB, Graphics: NVIDIA NV132 11GB, Audio: Realtek ALC1220, Monitor: ASUS MG28U, Network: Intel I219-V + Intel I211 OS: Ubuntu 20.04, Kernel: 5.4.0-31-generic (x86_64), Desktop: GNOME Shell 3.36.1, Display Server: X Server 1.20.8, Display Driver: modesetting 1.20.8, OpenGL: 4.3 Mesa 20.0.4, Compiler: GCC 9.3.0, File-System: ext4, Screen Resolution: 3840x2160 OpenJ9 0.20 Java 8: Processor: Intel Core i9-10980XE @ 4.80GHz (18 Cores / 36 Threads), Motherboard: ASRock X299 Steel Legend (P1.30 BIOS), Chipset: Intel Sky Lake-E DMI3 Registers, Memory: 32GB, Disk: Samsung SSD 970 PRO 512GB, Graphics: NVIDIA NV132 11GB, Audio: Realtek ALC1220, Monitor: ASUS MG28U, Network: Intel I219-V + Intel I211 OS: Ubuntu 20.04, Kernel: 5.4.0-31-generic (x86_64), Desktop: GNOME Shell 3.36.1, Display Server: X Server 1.20.8, Display Driver: modesetting 1.20.8, OpenGL: 4.3 Mesa 20.0.4, Compiler: GCC 9.3.0, File-System: ext4, Screen Resolution: 3840x2160 OpenJ9 0.20 Java 11: Processor: Intel Core i9-10980XE @ 4.80GHz (18 Cores / 36 Threads), Motherboard: ASRock X299 Steel Legend (P1.30 BIOS), Chipset: Intel Sky Lake-E DMI3 Registers, Memory: 32GB, Disk: Samsung SSD 970 PRO 512GB, Graphics: NVIDIA NV132 11GB, Audio: Realtek ALC1220, Monitor: ASUS MG28U, Network: Intel I219-V + Intel I211 OS: Ubuntu 20.04, Kernel: 5.4.0-31-generic (x86_64), Desktop: GNOME Shell 3.36.1, Display Server: X Server 1.20.8, Display Driver: modesetting 1.20.8, OpenGL: 4.3 Mesa 20.0.4, Compiler: GCC 9.3.0, File-System: ext4, Screen Resolution: 3840x2160 SPECjbb 2015 SPECjbb2015-Composite max-jOPS jOPS > Higher Is Better OpenJDK 14.0.1 ....... 40937 |================================================ OpenJDK 15 EA24 ...... 41430 |================================================= OpenJDK 11 ........... 39951 |=============================================== OpenJDK 8 ............ 39878 |=============================================== GraalVM 20.1 Java 8 .. 41430 |================================================= GraalVM 20.1 Java 11 . 38853 |============================================== OpenJ9 0.20 Java 8 ... 36596 |=========================================== OpenJ9 0.20 Java 11 .. 37007 |============================================ SPECjbb 2015 SPECjbb2015-Composite critical-jOPS jOPS > Higher Is Better OpenJDK 14.0.1 ....... 24518 |================================================= OpenJDK 15 EA24 ...... 24186 |================================================ OpenJDK 11 ........... 17863 |==================================== OpenJDK 8 ............ 12087 |======================== GraalVM 20.1 Java 8 .. 12650 |========================= GraalVM 20.1 Java 11 . 18842 |====================================== OpenJ9 0.20 Java 8 ... 12867 |========================== OpenJ9 0.20 Java 11 .. 11238 |====================== Java SciMark 2.0 Computational Test: Composite Mflops > Higher Is Better OpenJDK 14.0.1 ....... 2218.31 |========================================== OpenJDK 15 EA24 ...... 2328.99 |============================================ OpenJDK 11 ........... 2488.75 |=============================================== OpenJDK 8 ............ 2355.09 |============================================ GraalVM 20.1 Java 8 .. 1846.47 |=================================== GraalVM 20.1 Java 11 . 1835.14 |=================================== OpenJ9 0.20 Java 8 ... 2172.32 |========================================= OpenJ9 0.20 Java 11 .. 2171.85 |========================================= Java SciMark 2.0 Computational Test: Monte Carlo Mflops > Higher Is Better OpenJDK 14.0.1 ....... 1179.86 |=============================================== OpenJDK 15 EA24 ...... 1178.33 |=============================================== OpenJDK 11 ........... 1180.42 |=============================================== OpenJDK 8 ............ 1180.26 |=============================================== GraalVM 20.1 Java 8 .. 715.96 |============================= GraalVM 20.1 Java 11 . 706.47 |============================ OpenJ9 0.20 Java 8 ... 458.28 |================== OpenJ9 0.20 Java 11 .. 458.72 |================== Java SciMark 2.0 Computational Test: Fast Fourier Transform Mflops > Higher Is Better OpenJDK 14.0.1 ....... 1271.68 |================================= OpenJDK 15 EA24 ...... 1397.09 |==================================== OpenJDK 11 ........... 1405.66 |==================================== OpenJDK 8 ............ 1215.71 |=============================== GraalVM 20.1 Java 8 .. 1834.87 |=============================================== GraalVM 20.1 Java 11 . 1798.47 |============================================== OpenJ9 0.20 Java 8 ... 1517.67 |======================================= OpenJ9 0.20 Java 11 .. 1513.16 |======================================= Java SciMark 2.0 Computational Test: Sparse Matrix Multiply Mflops > Higher Is Better OpenJDK 14.0.1 ....... 1971.64 |===================================== OpenJDK 15 EA24 ...... 2325.78 |============================================ OpenJDK 11 ........... 2385.30 |============================================= OpenJDK 8 ............ 2272.35 |=========================================== GraalVM 20.1 Java 8 .. 2508.26 |=============================================== GraalVM 20.1 Java 11 . 2472.18 |============================================== OpenJ9 0.20 Java 8 ... 1444.42 |=========================== OpenJ9 0.20 Java 11 .. 1443.53 |=========================== Java SciMark 2.0 Computational Test: Dense LU Matrix Factorization Mflops > Higher Is Better OpenJDK 14.0.1 ....... 4759.42 |======================================== OpenJDK 15 EA24 ...... 4847.58 |========================================= OpenJDK 11 ........... 5616.19 |=============================================== OpenJDK 8 ............ 5250.95 |============================================ GraalVM 20.1 Java 8 .. 2694.96 |======================= GraalVM 20.1 Java 11 . 2719.45 |======================= OpenJ9 0.20 Java 8 ... 5604.05 |=============================================== OpenJ9 0.20 Java 11 .. 5605.81 |=============================================== Java SciMark 2.0 Computational Test: Jacobi Successive Over-Relaxation Mflops > Higher Is Better OpenJDK 14.0.1 ....... 1908.95 |=============================================== OpenJDK 15 EA24 ...... 1896.17 |=============================================== OpenJDK 11 ........... 1856.19 |============================================== OpenJDK 8 ............ 1856.19 |============================================== GraalVM 20.1 Java 8 .. 1478.30 |==================================== GraalVM 20.1 Java 11 . 1479.14 |==================================== OpenJ9 0.20 Java 8 ... 1837.17 |============================================= OpenJ9 0.20 Java 11 .. 1838.04 |============================================= Apache HBase 2.2.3 Test: Increment - Clients: 32 Rows Per Second > Higher Is Better OpenJDK 14.0.1 ....... 87380 |================================================ OpenJDK 15 EA24 ...... 81808 |============================================= OpenJDK 11 ........... 82386 |============================================= OpenJDK 8 ............ 89461 |================================================= GraalVM 20.1 Java 8 .. 84609 |============================================== GraalVM 20.1 Java 11 . 82317 |============================================= OpenJ9 0.20 Java 8 ... 85085 |=============================================== OpenJ9 0.20 Java 11 .. 81997 |============================================= Apache HBase 2.2.3 Test: Random Read - Clients: 1 Rows Per Second > Higher Is Better OpenJDK 14.0.1 ....... 7700 |========================================== OpenJDK 15 EA24 ...... 6355 |================================== OpenJDK 11 ........... 7546 |========================================= OpenJDK 8 ............ 9258 |================================================== GraalVM 20.1 Java 8 .. 8811 |================================================ GraalVM 20.1 Java 11 . 8784 |=============================================== OpenJ9 0.20 Java 8 ... 8803 |================================================ OpenJ9 0.20 Java 11 .. 7318 |======================================== Apache HBase 2.2.3 Test: Random Read - Clients: 32 Rows Per Second > Higher Is Better OpenJDK 14.0.1 ....... 181232 |=============================================== OpenJDK 15 EA24 ...... 82034 |===================== OpenJDK 11 ........... 78335 |==================== OpenJDK 8 ............ 184137 |================================================ GraalVM 20.1 Java 8 .. 176788 |============================================== GraalVM 20.1 Java 11 . 176537 |============================================== OpenJ9 0.20 Java 8 ... 177237 |============================================== OpenJ9 0.20 Java 11 .. 176202 |============================================== Apache HBase 2.2.3 Test: Async Random Read - Clients: 1 Rows Per Second > Higher Is Better OpenJDK 14.0.1 ....... 10114 |=============================================== OpenJDK 15 EA24 ...... 10475 |================================================= OpenJDK 11 ........... 10152 |=============================================== OpenJDK 8 ............ 10089 |=============================================== GraalVM 20.1 Java 8 .. 10110 |=============================================== GraalVM 20.1 Java 11 . 10016 |=============================================== OpenJ9 0.20 Java 8 ... 9903 |============================================== OpenJ9 0.20 Java 11 .. 7812 |===================================== Apache HBase 2.2.3 Test: Async Random Read - Clients: 32 Rows Per Second > Higher Is Better OpenJDK 14.0.1 ....... 80799 |=================== OpenJDK 15 EA24 ...... 84414 |==================== OpenJDK 11 ........... 84812 |==================== OpenJDK 8 ............ 197796 |================================================ GraalVM 20.1 Java 8 .. 199261 |================================================ GraalVM 20.1 Java 11 . 194671 |=============================================== OpenJ9 0.20 Java 8 ... 197184 |=============================================== OpenJ9 0.20 Java 11 .. 195159 |=============================================== Apache HBase 2.2.3 Test: Increment - Clients: 32 Microseconds - Average Latency < Lower Is Better OpenJDK 14.0.1 ....... 363 |================================================ OpenJDK 15 EA24 ...... 388 |=================================================== OpenJDK 11 ........... 384 |================================================== OpenJDK 8 ............ 354 |=============================================== GraalVM 20.1 Java 8 .. 375 |================================================= GraalVM 20.1 Java 11 . 384 |================================================== OpenJ9 0.20 Java 8 ... 372 |================================================= OpenJ9 0.20 Java 11 .. 386 |=================================================== Apache HBase 2.2.3 Test: Random Read - Clients: 1 Microseconds - Average Latency < Lower Is Better OpenJDK 14.0.1 ....... 128 |========================================== OpenJDK 15 EA24 ...... 156 |=================================================== OpenJDK 11 ........... 131 |=========================================== OpenJDK 8 ............ 107 |=================================== GraalVM 20.1 Java 8 .. 112 |===================================== GraalVM 20.1 Java 11 . 112 |===================================== OpenJ9 0.20 Java 8 ... 112 |===================================== OpenJ9 0.20 Java 11 .. 135 |============================================ Apache HBase 2.2.3 Test: Random Read - Clients: 32 Microseconds - Average Latency < Lower Is Better OpenJDK 14.0.1 ....... 173 |====================== OpenJDK 15 EA24 ...... 387 |================================================= OpenJDK 11 ........... 405 |=================================================== OpenJDK 8 ............ 170 |===================== GraalVM 20.1 Java 8 .. 177 |====================== GraalVM 20.1 Java 11 . 178 |====================== OpenJ9 0.20 Java 8 ... 177 |====================== OpenJ9 0.20 Java 11 .. 178 |====================== Apache HBase 2.2.3 Test: Async Random Read - Clients: 1 Microseconds - Average Latency < Lower Is Better OpenJDK 14.0.1 ....... 98 |======================================== OpenJDK 15 EA24 ...... 94 |====================================== OpenJDK 11 ........... 97 |======================================= OpenJDK 8 ............ 98 |======================================== GraalVM 20.1 Java 8 .. 98 |======================================== GraalVM 20.1 Java 11 . 98 |======================================== OpenJ9 0.20 Java 8 ... 100 |======================================== OpenJ9 0.20 Java 11 .. 126 |=================================================== Apache HBase 2.2.3 Test: Async Random Read - Clients: 32 Microseconds - Average Latency < Lower Is Better OpenJDK 14.0.1 ....... 393 |=================================================== OpenJDK 15 EA24 ...... 376 |================================================= OpenJDK 11 ........... 374 |================================================= OpenJDK 8 ............ 159 |===================== GraalVM 20.1 Java 8 .. 158 |===================== GraalVM 20.1 Java 11 . 161 |===================== OpenJ9 0.20 Java 8 ... 159 |===================== OpenJ9 0.20 Java 11 .. 161 |===================== Renaissance 0.10.0 Test: Scala Dotty ms < Lower Is Better OpenJDK 14.0.1 ....... 1721.47 |====================================== OpenJDK 15 EA24 ...... 1660.57 |===================================== OpenJDK 11 ........... 1520.53 |================================== OpenJDK 8 ............ 1050.95 |======================= GraalVM 20.1 Java 8 .. 976.55 |====================== GraalVM 20.1 Java 11 . 1563.88 |================================== OpenJ9 0.20 Java 8 ... 1752.37 |======================================= OpenJ9 0.20 Java 11 .. 2132.40 |=============================================== Renaissance 0.10.0 Test: Savina Reactors.IO ms < Lower Is Better OpenJDK 14.0.1 ....... 12821.41 |========================= OpenJDK 15 EA24 ...... 12358.79 |======================== OpenJDK 11 ........... 23220.87 |============================================== OpenJDK 8 ............ 12403.29 |========================= GraalVM 20.1 Java 8 .. 14987.33 |============================== GraalVM 20.1 Java 11 . 19849.42 |======================================= OpenJ9 0.20 Java 8 ... 16534.64 |================================= OpenJ9 0.20 Java 11 .. 18338.97 |==================================== Renaissance 0.10.0 Test: Twitter HTTP Requests ms < Lower Is Better OpenJDK 14.0.1 ....... 2580.72 |============================================== OpenJDK 15 EA24 ...... 2522.02 |============================================= OpenJDK 11 ........... 2446.91 |============================================ OpenJDK 8 ............ 2157.52 |======================================= GraalVM 20.1 Java 8 .. 2018.07 |==================================== GraalVM 20.1 Java 11 . 2343.04 |========================================== OpenJ9 0.20 Java 8 ... 2520.96 |============================================= OpenJ9 0.20 Java 11 .. 2615.44 |=============================================== Renaissance 0.10.0 Test: Akka Unbalanced Cobwebbed Tree ms < Lower Is Better OpenJDK 14.0.1 ....... 10789.33 |========================================= OpenJDK 15 EA24 ...... 10760.55 |========================================= OpenJDK 11 ........... 11574.69 |============================================ OpenJDK 8 ............ 10458.53 |======================================== GraalVM 20.1 Java 8 .. 10343.42 |======================================== GraalVM 20.1 Java 11 . 10625.43 |========================================= OpenJ9 0.20 Java 8 ... 12042.03 |============================================== OpenJ9 0.20 Java 11 .. 12025.46 |============================================== Renaissance 0.10.0 Test: Genetic Algorithm Using Jenetics + Futures ms < Lower Is Better OpenJDK 14.0.1 ....... 4751.34 |======================================= OpenJDK 15 EA24 ...... 4804.46 |======================================= OpenJDK 11 ........... 5062.54 |========================================= OpenJDK 8 ............ 3377.40 |=========================== GraalVM 20.1 Java 8 .. 5265.04 |=========================================== GraalVM 20.1 Java 11 . 5300.32 |=========================================== OpenJ9 0.20 Java 8 ... 5773.58 |=============================================== OpenJ9 0.20 Java 11 .. 5747.81 |=============================================== DaCapo Benchmark 9.12-MR1 Java Test: H2 msec < Lower Is Better OpenJDK 14.0.1 ....... 5414 |======================================= OpenJDK 15 EA24 ...... 5507 |======================================= OpenJDK 11 ........... 5259 |====================================== OpenJDK 8 ............ 5835 |========================================== GraalVM 20.1 Java 8 .. 6609 |=============================================== GraalVM 20.1 Java 11 . 6578 |=============================================== OpenJ9 0.20 Java 8 ... 6867 |================================================= OpenJ9 0.20 Java 11 .. 6985 |================================================== DaCapo Benchmark 9.12-MR1 Java Test: Jython msec < Lower Is Better OpenJDK 14.0.1 ....... 3868 |============================ OpenJDK 15 EA24 ...... 3901 |============================= OpenJDK 11 ........... 3903 |============================= OpenJDK 8 ............ 3446 |========================= GraalVM 20.1 Java 8 .. 3641 |=========================== GraalVM 20.1 Java 11 . 3812 |============================ OpenJ9 0.20 Java 8 ... 6687 |================================================= OpenJ9 0.20 Java 11 .. 6804 |================================================== DaCapo Benchmark 9.12-MR1 Java Test: Tradesoap msec < Lower Is Better OpenJDK 14.0.1 ....... 3541 |========================================= OpenJDK 15 EA24 ...... 3331 |====================================== OpenJDK 11 ........... 3696 |========================================== OpenJDK 8 ............ 3970 |============================================= GraalVM 20.1 Java 8 .. 4363 |================================================== GraalVM 20.1 Java 11 . 4099 |=============================================== DaCapo Benchmark 9.12-MR1 Java Test: Tradebeans msec < Lower Is Better OpenJDK 14.0.1 ....... 9330 |================================================ OpenJDK 15 EA24 ...... 9225 |================================================ OpenJDK 11 ........... 8132 |========================================== OpenJDK 8 ............ 8469 |============================================ GraalVM 20.1 Java 8 .. 9267 |================================================ GraalVM 20.1 Java 11 . 9637 |================================================== Java Gradle Build Gradle Build: Reactor Seconds < Lower Is Better OpenJDK 14.0.1 ....... 262.17 |=========================================== OpenJDK 11 ........... 243.49 |======================================== GraalVM 20.1 Java 8 .. 190.46 |================================ GraalVM 20.1 Java 11 . 249.92 |========================================= OpenJ9 0.20 Java 8 ... 258.43 |=========================================== OpenJ9 0.20 Java 11 .. 290.16 |================================================