<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          再見,Java 8!Java 17 竟然是史上最快的 JDK。。

          共 1928字,需瀏覽 4分鐘

           ·

          2021-10-03 20:07


          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ī)器,沒(méi)有任何其他計(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-20OpenJDK 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-20OpenJDK 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-14OpenJDK Runtime Environment (build 17+35-2724)OpenJDK 64-Bit Server VM (build 17+35-2724, mixed mode, sharing)

          3、JVM 選項(xiàng)


          啟用 -Xmx3840M 并明確指定垃圾回收器:


          • -XX:+UseG1GC for G1GC,低延遲垃圾回收器(三個(gè) JDK 版本的默認(rèn)項(xiàng))
          • -XX:+UseParallelGC for ParallelGC,高吞吐量垃圾回收器

          4、Main class


          org.optaplanner.examples.app.GeneralOptaPlannerBenchmarkApp,來(lái)自? OptaPlanner 8.10.0.Final 中的 optaplanner-examples 模塊。


          • 每次運(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ù)熱開始;

          • 解決規(guī)劃問(wèn)題不涉及 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í)體之間的沖突。


          5、運(yùn)行次數(shù)


          每個(gè) JDK 和每個(gè)垃圾回收器組合按順序運(yùn)行 3 次。下面的結(jié)果是這 3 次運(yùn)行的平均值。


          # 測(cè)試結(jié)果


          Java 11 (LTS)、Java 16 對(duì)比 Java 17 (LTS)






          在 Java?17 上使用?G1GC 對(duì)比 ParallelGC?






          # 總結(jié)


          基于 OptaPlanner 用例,這些基準(zhǔn)測(cè)試表明:


          • 對(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%。


          簡(jiǎn)而言之,最新的 JDK 更快,高吞吐量垃圾回收器比低延遲垃圾回收器更快。


          因此,Java 17 帶來(lái)的性能提升非常值得升級(jí),更重要的是它可以免費(fèi)商用,而且還是 LTS 版本。


          所以你還要堅(jiān)持 Java 8 一萬(wàn)年不動(dòng)搖嗎?

          轉(zhuǎn)自:Java技術(shù)棧

          關(guān)注公眾號(hào)【Java技術(shù)江湖】后回復(fù)“PDF”即可領(lǐng)取200+頁(yè)的《Java工程師面試指南》

          強(qiáng)烈推薦,幾乎涵蓋所有Java工程師必知必會(huì)的知識(shí)點(diǎn),不管是復(fù)習(xí)還是面試,都很實(shí)用。



          瀏覽 75
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久人人八视频观看 | 国产欧美一区二区三区四区 | 黑人激情操逼 | 91豆花在线观看 | 撸一撸免费视频 |