精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

Oracle計劃將ZGC項目提交給OpenJDK

責任編輯:editor004

作者: 張衛濱

2017-11-09 11:26:00

摘自:INFOQ

根據OpenJDK的郵件列表,來自Oracle的Per Liden提議將內部開發的Z垃圾收集器開源,并在OpenJDK創建ZGC項目。來自InfoWorld的觀察認為,該項目可能會與Red Hat的Shenandoah垃圾收集項目產生競爭,因為后者也是以大容量堆的應用為關注對象。

根據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垃圾收集項目產生競爭,因為后者也是以大容量堆的應用為關注對象。

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 莆田市| 香格里拉县| 浑源县| 西充县| 安远县| 屯门区| 察雅县| 凤山县| 章丘市| 屏东县| 衡水市| 阳东县| 睢宁县| 安岳县| 辽阳市| 高唐县| 梧州市| 思南县| 崇阳县| 天全县| 台东县| 临洮县| 谢通门县| 勃利县| 阳城县| 体育| 和林格尔县| 静安区| 山西省| 萨迦县| 射阳县| 邛崃市| 嘉定区| 山阳县| 芒康县| 正宁县| 美姑县| 新乡市| 青岛市| 东港市| 营口市|