Java 17快了多少?JDK 17、16和11的性能比較和分析
閱讀本文大概需要 2.8 分鐘。
來(lái)自:https://www.optaplanner.org/blog/2021/09/15/HowMuchFasterIsJava17.html
Java 17 已正式發(fā)布,新版本提供了不少新特性和功能增強(qiáng)。不過(guò)對(duì)于大多數(shù)項(xiàng)目而言,往往需要更改代碼才能利用到這些新變化,但性能除外 —— 開發(fā)者只需要升級(jí) JDK 版本,就能免費(fèi)獲得性能提升。
規(guī)劃調(diào)度引擎 OptaPlanner 項(xiàng)目負(fù)責(zé)人對(duì) JDK 17、JDK 16 和 JDK 11 的性能基準(zhǔn)測(cè)試進(jìn)行了對(duì)比,看看 Java 17 的性能提升是否值得我們?nèi)ド?jí)。
測(cè)試環(huán)境和流程
1、硬件:穩(wěn)定的機(jī)器,沒有任何其他計(jì)算要求的進(jìn)程在運(yùn)行。
配置 Intel? Xeon? Silver 4116 @ 2.1 GHz (12 cores total / 24 threads) ,128 GiB RAM ,RHEL 8 x86_64
2、JDKs(用于編譯和運(yùn)行)
JDK 11
openjdk 11.0.12 2021-07-20
OpenJDK Runtime Environment Temurin-11.0.12+7 (build 11.0.12+7)
OpenJDK 64-Bit Server VM Temurin-11.0.12+7 (build 11.0.12+7, mixed mode)
JDK 16
openjdk 16.0.2 2021-07-20
OpenJDK Runtime Environment (build 16.0.2+7-67)
OpenJDK 64-Bit Server VM (build 16.0.2+7-67, mixed mode, sharing)
JDK 17 (下載日期為 2021-09-06)
openjdk 17 2021-09-14
OpenJDK Runtime Environment (build 17+35-2724)
OpenJDK 64-Bit Server VM (build 17+35-2724, mixed mode, sharing)
3、JVM 選項(xiàng):?jiǎn)⒂?/span>-Xmx3840M并明確指定垃圾回收器:
-XX:+UseG1GCfor G1GC,低延遲垃圾回收器(三個(gè) JDK 版本的默認(rèn)項(xiàng))-XX:+UseParallelGCfor ParallelGC,高吞吐量垃圾回收器
org.optaplanner.examples.app.GeneralOptaPlannerBenchmarkApp,來(lái)自 OptaPlanner 8.10.0.Final中的 optaplanner-examples模塊每次運(yùn)行都使用 OptaPlanner 解決 11 個(gè)規(guī)劃問題,例如員工排班、學(xué)校時(shí)間表和云優(yōu)化。每個(gè)規(guī)劃問題運(yùn)行 5 分鐘。日志記錄設(shè)置為 INFO?;鶞?zhǔn)測(cè)試以 30 秒的 JVM 預(yù)熱開始。 解決規(guī)劃問題不涉及 IO(除了在啟動(dòng)期間加載輸入的幾毫秒)。單個(gè) CPU 完全飽和。它會(huì)不斷地創(chuàng)建許多短期存在的對(duì)象,然后 GC 將它們收集起來(lái)。 基準(zhǔn)測(cè)試會(huì)衡量每秒計(jì)算的分?jǐn)?shù)數(shù)量,分?jǐn)?shù)越高代表性能越好。為提議的規(guī)劃解決方案計(jì)算分?jǐn)?shù)并非易事:它涉及許多計(jì)算,包括檢查每個(gè)實(shí)體與每個(gè)其他實(shí)體之間的沖突。
測(cè)試結(jié)果
Java 11 (LTS) and Java 16 versus Java 17 (LTS)




G1GC versus ParallelGC on Java 17


總結(jié)
對(duì)于 G1GC(默認(rèn)),Java 17 比 Java 11 快 8.66%,比 Java 16 快 2.41%
對(duì)于 ParallelGC,Java 17 比 Java 11 快 6.54%,比 Java 16 快 0.37%
Parallel GC 比 G1 GC 快 16.39%
17 歲少年買不到回國(guó)機(jī)票就攻擊航司系統(tǒng)
面試官問:對(duì)象池技術(shù)了解嗎?apache common pool2呢?
內(nèi)容包含Java基礎(chǔ)、JavaWeb、MySQL性能優(yōu)化、JVM、鎖、百萬(wàn)并發(fā)、消息隊(duì)列、高性能緩存、反射、Spring全家桶原理、微服務(wù)、Zookeeper、數(shù)據(jù)結(jié)構(gòu)、限流熔斷降級(jí)......等技術(shù)棧!
?戳閱讀原文領(lǐng)取! 朕已閱 

