<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>

          JDK 17新特性,已發(fā)布!程序員:不想追了... ...

          共 3384字,需瀏覽 7分鐘

           ·

          2021-11-20 07:15



          Java 17 已正式發(fā)布,該版本是自Java 11以來的首個長期支持版本。Oracle 還提議將 JDK LTS發(fā)布的節(jié)奏從每三年一次改為每兩年一次,并且每個LTS 版本的服務時間至少8年以上。Java 版本通常是6個月一更新,時間分別在3月和9月,而這些版本的支持時間基本在半年左右。

          Java各個版本的生命周期
          據(jù)Oralce官博透露,雖然6個月版本的使用人數(shù)在增長,但大部分組織及企業(yè)更傾向于把LTS版本用在生產(chǎn)環(huán)境中,從而得到更加穩(wěn)定可靠的服務。這一點從Snyk發(fā)布的2021 Java社區(qū)報告中也可以得到證實,雖然有61.5%的人在生產(chǎn)中使用Java 11,但仍有一半的Java 11用戶(目前使用最多的版本)在他們的生產(chǎn)堆棧中使用Java 8。

          Oracle 推出 Free Java License

          截圖自Oracle官博

          自Java被Oralce收購以后,付費JDK就一直被人詬病,現(xiàn)在好了,Oracle 宣布推出JDK免費服務。什么意思呢?讓我們來看一下官方解釋:


          1、Oracle正在為行業(yè)提供免費的,領先的Oralce JDK,包括所有季度安全更新,并包含商業(yè)和生產(chǎn)用途。

          2、新許可是“Oracle 免費條款和條件”(NFTC) 許可。此Oracle JDK許可證允許所有用戶免費使用,甚至可以用于商業(yè)和生產(chǎn)用途。只要不收費,再分發(fā)是允許的。

          3、開發(fā)人員和組織現(xiàn)在無需點擊即可輕松下載、使用、共享和重新分發(fā) Oracle JDK。

          4、Oracle 將從Oracle JDK 17開始提供這些免費版本和更新,并在下一個 LTS 版本之后繼續(xù)提供整整一年。以前的版本不受此更改的影響。

          5、Oracle 將繼續(xù)按照自 Java 9 以來的相同版本和時間表提供GPL下的Oracle OpenJDK 版本。


          總結成一句話,“免費”也并不意味著開發(fā)者可以隨心所欲,因為Oracle的 NFTC 是禁止付費重新分發(fā)其 Java 軟件

          而在Java 17正式發(fā)布之前,Java開發(fā)框架Spring率先在官博宣布,Spring Framework 6和Spring Boot 3計劃在2022年第四季度實現(xiàn)總體可用性的高端基線:

          1、Java 17+(來自 Spring Framework 5.3.x 線中的 Java 8-17)

          2、Jakarta EE 9+(來自Spring框架5.3.x 線中的 Java EE 7-8)


          通過實際行動來支持 Java 17,間接呼吁開發(fā)者,是時候使用 Java 17了。

          ?要不要升級呢?Java 17 到底有多快?

          看到如此誠意滿滿的更新,開發(fā)者到底要不要升級呢?盡管只需切換JDK即可體驗Java 17。對此,OptaPlanner網(wǎng)站做了一項基準測試:Java到底有多快?通過比較 JDK 17、JDK 16 和 JDK 11 來告訴你答案。

          基準方法

          硬件:一個穩(wěn)定的機器不運行任何其他的計算要求苛刻的流程,配置:Intel? Xeon? Silver 4116 @ 2.1 GHz (12 cores total / 24 threads)和128 GiBRAM內(nèi)存,運行RHEL 8 x86_64。

          JDK版本


          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


          openjdk?17?2021-09-14
          OpenJDK?Runtime?Environment?(build?17+35-2724)
          OpenJDK?64-Bit?Server?VM?(build?17+35-2724, mixed mode, sharing)

          JVM 選項:-Xmx3840M并明確指定垃圾收集器:

          -XX:+UseG1GC?對于 G1GC,低延遲垃圾收集器(所有三個 JDK 中的默認值);

          -XX:+UseParallelGC?對于 ParallelGC,高吞吐量垃圾收集器。


          Main classorg.optaplanner.examples.app.GeneralOptaPlannerBenchmarkApp?來自optaplanner-examplesOptaPlanner?中的模塊8.10.0.Final。

          1、每次運行都使用 OptaPlanner 解決 11 個規(guī)劃問題,例如 員工排班、 學校時間表和云優(yōu)化。每個規(guī)劃問題運行 5 分鐘。日志記錄設置為INFO。基準測試以 30 秒的 JVM 預熱(warm up)開始,隨后丟棄。

          2、解決規(guī)劃問題不涉及IO(除了在啟動期間加載輸入的幾毫秒)。單個CPU完全飽和。它不斷地創(chuàng)建許多短期存在的對象,然后 GC 將它們收集起來。

          3、基準衡量每秒計算的分數(shù)數(shù)量,越高越好。為測試計劃規(guī)劃的解決方案計算分數(shù)并非易事:它涉及許多計算,包括檢查每個實體與每個其他實體之間的沖突。


          運行次數(shù):每個JDK 和每個垃圾收集器組合按順序運行 3 次。下面的結果是這 3 次運行的平均值。




          測試結果


          Java 11 (LTS) 和 Java 16 與 Java 17 (LTS)

          表 1. 在不同 JDK 上使用 G1GC 的每秒計算得分


          表 2. 在不同 JDK 上使用 ParallelGC 的每秒計算得分



          備注:

          查看 3 次單獨運行的原始數(shù)據(jù)(此處未顯示),機器重新分配數(shù)(B1 和 B10)在同一 JDK 和 GC 上的運行之間波動很大,通常超過10%,其他數(shù)字不會受到這種不可靠性的影響。

          可以以說忽略 Machine Reassignment numbers 更好。但是為了避免挑選數(shù)據(jù)的問題,這些結果和平均值確實把它們包括進來了。

          Java 17 上的 G1GC 與 ParallelGC

          表 3.JDK 17 下不同 GC 每秒的計算得分


          基準測試總結

          1、平均而言,以 OptaPlanner 為例的基準測試結果表明:

          2、對于 G1GC(默認),Java 17 比 Java 11 快 8.66%,比 Java 16 快 2.41%。

          3、對于 ParallelGC,Java 17 比 Java 11 快 6.54%,比 Java 16 快 0.37%。

          4、Parallel GC 比 G1 GC 快 16.39%。


          多說一句

          在基于 JDK 15 的基準測試中,Java 15 比 Java 11 快 11.24%。現(xiàn)在,Java 17 相對于 Java 11 的增益更少。這是否意味著 Java 17 比 Java 15 慢?

          答案是否定的,Java 17 依然比 Java 15 快,因為之前的那些基準測試是在不同的代碼庫上運行的(OptaPlanner 7.44 而不是 8.10)。不要拿橙子與蘋果作比較,不具有可比性。

          結論

          總而言之,JDK17 的性能表現(xiàn)還是非常值得升級的,至少于OptaPlanner Demo 而言。

          此外,這些用例最快的垃圾收集器仍然是ParallelGC, 而不是G1GC(默認)。

          作為3年后首次發(fā)布的LTS版本的Java 17給你帶來了哪些驚喜?面對Go、Kotlion等JVM的強勢發(fā)展,你覺得Java還能保持霸主地位嗎?
          ——————END——————

          歡迎關注“Java引導者”,我們分享最有價值的Java的干貨文章,助力您成為有思想的Java開發(fā)工程師!


          瀏覽 94
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  色五月丁香影音先锋 | 亚洲一级黄色视频 | 欧美日韩一区二区三区电影 | 黑人巨大开小嫩苞 | 羽月希奶水一区二区三区 |