山东省群英会开奖直播

億元級IT行業生態鏈
一站式解決方案提供商

24小時免費咨詢電話
010-52725243

新聞資訊

AJIA NEWS

Oracle計劃將ZGC項目提交給OpenJDK

來源:InfoQ 發布日期:2017-11-10

阿甲科技Oracle

根據 OpenJDK 的郵件列表,來自 Oracle 的 Per Liden 提議將內部開發的Z垃圾收集器開源,并在 OpenJDK 創建 ZGC 項目。

按照 OpenJDK 的指導原則,該項目將會托管不斷開發完善的Z垃圾收集器,也被稱為 ZGC。ZGC 項目針對低延遲和大規模堆的環境進行了優化。在 Oracle 內部,ZGC 一直處于開發狀態,現在提議將其開源是為了擴大貢獻者和用戶之間的共識。按照 Per Liden 的說法,ZGC 的設計目標:

  • 處理 TB 量級的堆;
  • GC 時間不超過 10ms;
  • 相對于使用 G1,應用吞吐量的降低不超過 15%。

在一些著名的業界標準基準測試中,ZGC 已經達到或超過該目標了。ZGC 是一個并發、基于區域(region)、增量式壓縮的收集器。Stop-The-World 階段只會在根對象掃描(root scanning)階段發生,這樣的話 GC 暫停時間并不會隨著堆和存活對象的數量而增加。

目前,ZGC 已經較為成熟和穩定,但是,還有一些工作要做。ZGC 在以下 GC 任務/階段中會并發執行:

  • 標記(Marking)
  • 引用處理(Reference processing)
  • 重新分配集的選擇(Relocation set selection)
  • 重分配/壓縮(Relocation/Compaction)

現在,團隊的主要工作是將其他的 GC 任務/階段也變成并發執行,具體來講就是弱根對象處理(Weak root processing,包括 StringTable 和 JNIWeakGlobalRefs)、類卸載(Class unloading)。

ZGC 的核心原則就是組合使用加載屏障(load barrier)與有色對象指針(colored object pointers,colored oops)。正是采用了這兩項技術,ZGC 才能做到一些操作的并發執行,比如在 Java 應用運行的時候,進行對象位置的重新分配。從 Java 線程的角度來講,加載 Java 對象中的引用域會受到加載屏障影響。除了對象地址以外,有色對象指針還會包含加載屏障所需的其他信息,用來決定 Java 線程在使用指針之前是否要采取一些額外的措施。例如,如果對象有可能會被重新分配地址的話,加載屏障會探測到這種情況并采取相應的措施。

Per Liden 認為,這種方式相對其他可選方案有一些優勢,比如能夠降低堆內存的損耗、減少和簡化 GC 屏障以降低運行時的損耗,而且有色對象指針除了包含標記和重分配信息之外,還可以存儲任何類型的信息,這樣加載屏障就能基于這些信息采用相應的措施。

該項目初始代碼會基于 JDK 10 的倉庫以及最新的 ZGC 補丁集構建。JDK 10 父倉庫的變化將會階段性同步到 ZGC 中。

來自 InfoWorld 的觀察認為,該項目可能會與 Red Hat 的 Shenandoah 垃圾收集項目產生競爭,因為后者也是以大容量堆的應用為關注對象。

阿甲科技

歡迎訪問阿甲科技集團官方網站!
山东省群英会开奖直播 十四场胜负彩 极速时时谁 韩国快三官网98期 浙江快乐彩12开奖结果 浙江快乐彩12选5走势图 f老时时杀号定胆 金沙财旺时时彩是骗吗 北京单场开奖结果查询 单机梭哈安卓破解版 陕西十一选五任三推荐