Java17,有史以來(lái)最快?JDK
掃描二維碼
隨時(shí)隨地手機(jī)看文章
Java 17 已正式發(fā)布,該版本是自Java 11以來(lái)的首個(gè)長(zhǎng)期支持版本。Oracle 還提議將 JDK LTS發(fā)布的節(jié)奏從每三年一次改為每?jī)赡暌淮危⑶颐總€(gè)LTS 版本的服務(wù)時(shí)間至少8年以上。Java 版本通常是6個(gè)月一更新,時(shí)間分別在3月和9月,而這些版本的支持時(shí)間基本在半年左右。
-
Oracle正在為行業(yè)提供免費(fèi)的,領(lǐng)先的Oralce JDK,包括所有季度安全更新,并包含商業(yè)和生產(chǎn)用途。
-
新許可是“Oracle 免費(fèi)條款和條件”(NFTC) 許可。此Oracle JDK許可證允許所有用戶免費(fèi)使用,甚至可以用于商業(yè)和生產(chǎn)用途。只要不收費(fèi),再分發(fā)是允許的。
-
開(kāi)發(fā)人員和組織現(xiàn)在無(wú)需點(diǎn)擊即可輕松下載、使用、共享和重新分發(fā) Oracle JDK。
-
Oracle 將從Oracle JDK 17開(kāi)始提供這些免費(fèi)版本和更新,并在下一個(gè) LTS 版本之后繼續(xù)提供整整一年。以前的版本不受此更改的影響。
-
Oracle 將繼續(xù)按照自 Java 9 以來(lái)的相同版本和時(shí)間表提供GPL下的Oracle OpenJDK 版本。
-
Java 17 (來(lái)自 Spring Framework 5.3.x 線中的 Java 8-17)
-
Jakarta EE 9 (來(lái)自Spring框架5.3.x 線中的 Java EE 7-8)
-
JDK 11
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 Runtime Environment (build 16.0.2 7-67)
OpenJDK 64-Bit Server VM (build 16.0.2 7-67, mixed mode, sharing)
-
JDK 17
OpenJDK Runtime Environment (build 17 35-2724)
OpenJDK 64-Bit Server VM (build 17 35-2724, mixed mode, sharing)
-
-XX: UseG1GC 對(duì)于 G1GC,低延遲垃圾收集器(所有三個(gè) JDK 中的默認(rèn)值);
-
-XX: UseParallelGC 對(duì)于 ParallelGC,高吞吐量垃圾收集器。
-
每次運(yùn)行都使用 OptaPlanner 解決 11 個(gè)規(guī)劃問(wèn)題,例如 員工排班、 學(xué)校時(shí)間表和云優(yōu)化。每個(gè)規(guī)劃問(wèn)題運(yùn)行 5 分鐘。日志記錄設(shè)置為INFO。基準(zhǔn)測(cè)試以 30 秒的 JVM 預(yù)熱(warm up)開(kāi)始,隨后丟棄。
-
解決規(guī)劃問(wèn)題不涉及IO(除了在啟動(dòng)期間加載輸入的幾毫秒)。單個(gè)CPU完全飽和。它不斷地創(chuàng)建許多短期存在的對(duì)象,然后 GC 將它們收集起來(lái)。
-
基準(zhǔn)衡量每秒計(jì)算的分?jǐn)?shù)數(shù)量,越高越好。為測(cè)試計(jì)劃規(guī)劃的解決方案計(jì)算分?jǐn)?shù)并非易事:它涉及許多計(jì)算,包括檢查每個(gè)實(shí)體與每個(gè)其他實(shí)體之間的沖突。
-
平均而言,以 OptaPlanner 為例的基準(zhǔn)測(cè)試結(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%。