Java(JDK)13新特性之Dynamic CDS Archives

Java(JDK)13新特性之Dynamic CDS Archives

同一個物理機/虛擬機上啓動多個JVM時,如果每個虛擬機都單獨裝載自己需要的所有類,啓動成本和內存佔用是比較高的,所以引入了CSD(class Data Sharing)通過一些核心類在每個JVM間共享,每個JVM只需要裝載自己的應用類,啓動時間較少了,另外核心類是共享的,所以JVM的內存佔用也減少了.

CDS只能作用於Boot Class Loader加載的類,不能作用於App Class Loader 或者自定義的Class Loader加載的類.

在java10中,則將CDS擴展爲AppCDS,AppCDS不止能夠作用於Boot Class Loader,App Class Loader和自定義的Class Loader也能夠起作用,大大加大了CDS的適用範圍,也就是開發的自定義的類也可以裝載給多個JVM共享了.

Java 10包含JEP310的通過跨不同Java進程共享公共類源數據減少了內存的佔用和改進了啓動時間.

但是,JEP310中,使用AppCDS的過程還是比較複雜的,需要下面的步驟

1:決定要Dump 哪些Class

2:將類的內存Dump到歸檔文件中

3:使用Dump出來的歸檔文件加快應用的啓動速度

這一次的Java13中的JEP350在310的基礎上,又做了一些擴展,允許java應用程序執行結束時動態歸檔類,歸檔類將包括默認的基礎層CDS存檔中不存在的所有已加載的應用程序類和庫類.

也就是說,在Java 13中再使用AppCDS的時候,就不在需要這麼複雜了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章