Java出現一個新的GC:LXR
LXR是一種基於引用計數的新 Java 垃圾收集器,一種新的低延遲、高吞吐量的垃圾回收器。
該文在OpenJDK 11(當時的LTS)中構建了LXR,與現有G1、Shenandoah和ZGC等回收器進行了比較評估,LXR 在吞吐量和應用程式延遲方面都可以勝過這些回收器。
LXR採取了與現有生產型回收器非常不同的方法,使用先進的引用計數進行及時回收,謹慎地避免了併發複製的開銷。
LXR是以應用的延遲為目標,而不是以降低“暫停”為目標,專注於效率。複製回明智地執行的,並且僅在短暫的 STW 暫停期間執行,避免了併發複製的開銷。
點選標題,文章摘錄:
自2004年以來,G1是一種基於區域的設計與併發追蹤和嚴格疏散設計,這種設計一直主導著生產型垃圾回收器。
本文確認了這些先前的設計侷限性,因為僅疏散的併發回收成本很高,而且由於完全的堆追蹤,它們的回收也有延遲。
雖然它們提供了很短的暫停時間,但對於請求驅動的時間關鍵型工作負載來說,短暫停並不總是轉化為低延遲。
我們引入了LXR,它採取了一種完全不同的方法。它使用短暫的停頓和引用計數,在不復制的情況下及時回收大部分記憶體。
它通過有限的機會性複製對堆進行碎片整理。
它同時回收成熟的物件,識別迴圈中的死物件和引用計數卡住的死物件。
其結果是一個具有適度暫停時間的收集器,提供低應用延遲和高吞吐量。
我們的結果對堆的大小和微體系結構是穩健的。
這些初步結果表明,這種新的設計提供了效能而不需要額外的硬體或記憶體。我們希望這項工作能引起人們對現代收集器設計的重新思考,併為GC研究注入新的活力。
相關文章
- 一個關於JAVA GC的小實驗JavaGC
- 第一個只出現一次的字元——Java字元Java
- Java實現第一個程式碼,輸出 hello worldJava
- 【idea】編譯java專案時出現java.lang.OutOfMemoryError: GC overhead limit exceededIdea編譯JavaErrorGCMIT
- java GC CollectorJavaGC
- 自己實現一個java的arraylistJava
- Java GC 的那些事(2)JavaGC
- Java GC 的那些事(1)JavaGC
- Java GC的那些事(2)JavaGC
- 伺服器出現了一個新軟體,一幫大佬吵起來了!伺服器
- 第一個值出現一次的字元字元
- 深入理解Java的垃圾回收機制(GC)實現原理JavaGC
- Java——GC(垃圾回收)JavaGC
- Java實現一個簡單的BitArrayJava
- 如何看待golang(1.9?)新的GC 的Proposal?GolangGC
- 十個問題弄清JVM&GC(一)JVMGC
- java實現一個洗牌程式Java
- java實現一個月的日曆列印Java
- Java在Swing中如何實現彈出一個對話方塊的效果?Java
- 【GC】安裝GC之前需要調整的幾個引數GC
- JAVA GC日誌分析JavaGC
- jvm系列:Java GC 分析JVMJavaGC
- Scala 中的集合(三):實現一個新的 Collection 類
- 淺談對java-GC的理解JavaGC
- Java GC 專家系列3:GC調優實踐JavaGC
- 聊一聊 JVM 的 GCJVMGC
- Java Hotspot G1 GC的一些關鍵技術JavaHotSpotGC
- 才釋出幾個小時 有黑客發現了iOS 12.1一個新的密碼繞過漏洞黑客iOS密碼
- Java虛擬機器-GC垃圾回收演算法-判定一個物件是否是可回收的物件Java虛擬機GC演算法物件
- 開啟一個新時代: Apache HBase 1.0 釋出Apache
- Java一個列舉類的2種實現。Java
- Java實現一個簡單的計算器Java
- 一個字串中某一個字元第n次出現的位置的函式字串字元函式
- Java 15 正式釋出, 14 個新特性,重新整理你的認知!!Java
- 解決Android Studio出現GC overhead limit exceededAndroidGCMIT
- Java 22正式釋出,一文了解全部新特性Java
- 給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。陣列
- 每日一練(23):第一個只出現一次的字元字元