2022 Java生態系統報告:Java 11超Java 8、Oracle在縮水、Amazon在崛起!
- 2022 年 4 月 28 日
- 筆記
近日,New Relic發布了最新的2022 Java生態系統報告,這份報告可以幫助我們深入的了解Java體系的最新使用情況,下面就一起來看看2022年,Java發展的怎麼樣了,還是Java 8 YYDS嗎?
Java 11成為新的標準
在2020年的時候,Java 11已經推出了1年多,但當時Java 8的佔有率高達84.48%。2年過去了,Java 11上生產的比例第一次超過Java 8,佔有率已經達到了48.44%。曾今的霸主Java 8幾乎跌掉了一半,以46.45%佔據第二。
而大勢所趨的、整個Java生態都在擁抱的Java 17在排行榜上還是處於比較低的位置。這個其實還是意料之中的,因為生態的支援還需要一定時間的演進,比如Spring這個Java生態的大基座,對於Java 17的重要支援還要等到今年年底的Spring Boot 3發布(對這部分感興趣的小夥伴記得關注我,公眾號程式猿DD,長期分享這塊最前沿的專業解讀),同時周邊的其他各種框架、中間件也都要全面更上之後,才真正具備上生產的成熟度。
所以,先從Java 8到Java 11,還是一個不錯的選擇,小步快跑,免得到時候直接從Java 8到Java 17,步子太大,扯到x就不好了…
我正在連載Java 8之後的新特性解讀,這次一改之前的部落格風格,採用文檔(//www.didispace.com/java-features/)+ 影片(B站、影片號)的方式編寫,閱讀與學習體驗更加。感興趣的小伙可以關注收藏起來,能轉發分享下那是更好,這樣更有更新的動力。
最流行的非LTS版本:Java 14
從Java 9開始,Java版本的發布模式發生了變化。每隔6個月就會有一個新版本發布,但這些版本只在下一個版本之前受到官方支援。這樣做的目的是讓新功能更頻繁可用。
但是,與生產中的LTS版本相比,這些臨時的非LTS版本使用率一直都非常低,只有2.7%的應用程式在使用。
雖然像Azul Systems這樣的一些供應商在一些非LTS版本上提供了修補程式,但大多數的供應商沒有這麼做。這可能是為什麼大家不願意使用的原因。在非LTS Java版本中,Java 14最受歡迎。
Oracle在縮水,Amazon在崛起
這次的報告中,值得關注的是JDK發行版的變化。雖然大部分開發人員還是會從Oracle獲得JDK,而OpenJDK項目中的開源內容已經產生了豐富的選擇。
上圖顯示了Oracle在對其JDK 11發行版進行更嚴格的許可證控制之後(在使用Java 17返回到更開放的立場之前)的變化。2020年的時候,Oracle以絕對優勢(約佔Java市場的75%)成為最受歡迎的供應商。2年過去了,雖然他們依然還是頭把交椅,但他們的份額已經減少了一半。而Amazon的市場佔有率從2020年的2.18%大幅攀升至22%。
從2021年11月以來,還有一些有趣的變化:在Java 17發布之前,Eclipse Adoptium和Amazon在這份榜單上幾乎處於完全相反的位置。
容器中的資源分配
計算資源的配置
容器會影響人們分配計算和記憶體資源的方式。這份報告中的數據顯示,在容器中運行的應用程式中,少於四個核心的應用程式所佔的比例要高得多。
在人們經常部署容器的雲環境中,小規模運行的驅動力很有意義。但這一趨勢可能會給一些應用程式帶來意想不到的問題。比如:當運行的內核少於2個時,在最近JVM上使用默認的G1垃圾收集器所帶來的許多並發好處就消失了。所有這些單核實例可能都在使用串列收集器,並為此付出了性能代價,但許多人可能甚至不知道這一點。
記憶體資源的配置
在比較記憶體設置時,也會出現類似的趨勢,它們傾向於給容器中的實例分配更小的記憶體。
該報告中顯示,只有大約80%的容器化應用程式通過-XMX或-XX:MaxRAMPercentage標誌顯式請求JVM記憶體上限。從Java 9開始,JVM中的容器感知功能意味著這可能不會像過去那樣對這些應用程式造成安全問題,只要JVM是每個容器中運行的唯一進程。
最常用的垃圾收集演算法
垃圾收集(GC)演算法在JVM性能中起到核心作用,所以這塊一直以來都是社區討論最多的話題。新的數據顯示,在Java 8之後,垃圾收集器的使用發生了明顯的變化。
G1的總體受歡迎程度非常高。考慮到Java 11和更高版本上的G1收集器具有更新的默認設置和更高的性能,所以這一結果這並不令人驚訝。
原始報告我放到公眾號里了,對細節內容感興趣的話,可以在公眾號中發送關鍵詞:relic-java-2022,獲取完整報告。
好了,今天的分析那個就到這裡!如果您學習過程中如遇困難?可以加入我們超高品質的Spring技術交流群,參與交流與討論,更好的學習與進步!
歡迎關注我的公眾號:程式猿DD。第一時間了解前沿行業消息、分享深度技術乾貨、獲取優質學習資源