java 11 ZGC(可伸縮,低延遲的gc)


ZGC, A Scalable Low-Latency Garbage Collector(Experimental)

可伸縮,低延遲的gc

ZGC, 這應該是JDK11最為矚目的特性, 沒有之一. 但是后面帶了Experimental, 說明這還不建議用到生產環境.

GC暫停時間不會超過10ms

既能處理幾百兆的小堆, 也能處理幾個T的大堆(OMG)

和G1相比, 應用吞吐能力不會下降超過15%

為未來的GC功能和利用colord指針以及Load barriers優化奠定基礎

初始只支持64位系統

ZGC的設計目標是:支持TB級內存容量,暫停時間低(<10ms),對整個程序吞吐量的影響小於15%。 將來還可以擴展實現機制,以支持不少令人興奮的功能,例如多層堆(即熱對象置於DRAM和冷對象置於NVMe閃存),或壓縮堆。

GC是java主要優勢之一. 然而, 當GC停頓太長, 就會開始影響應用的響應時間.消除或者減少GC停頓時長, java將對更廣泛的應用場景是一個更有吸引力的平台. 此外, 現代系統中可用內存不斷增長,用戶和程序員希望JVM能夠以高效的方式充分利用這些內存, 並且無需長時間的GC暫停時間.

STW – stop the world

ZGC是一個並發, 基於region, 壓縮型的垃圾收集器, 只有root掃描階段會STW, 因此GC停頓時間不會隨着堆的增長和存活對象的增長而變長.

ZGC : avg 1.091ms max:1.681

G1 : avg 156.806 max:543.846

用法 : -XX:+UnlockExperimentalVMOptions –XX:+UseZGC, 因為ZGC還處於實驗階段, 所以需要通過JVM參數來解鎖這個特性


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM