目前,JDK13處於Release-Candidate Phase(發布候選階段),將於9月17日正式發布。目前該版本包含的特性已經全部固定,主要包含以下五個:
JEP 350,Dynamic CDS ArchivesJEP 351,ZGC: Uncommit Unused MemoryJEP 353,Reimplement the Legacy Socket APIJEP 354: Switch Expressions (Preview)JEP 355,Text Blocks (Preview)
下面來逐一介紹下這五個重要的特性。
Dynamic CDS Archives
這一特性是在JEP310:Application Class-Data Sharing基礎上擴展而來的,Dynamic CDS Archives中的CDS指的就是Class-Data Sharing。
那麼,這個JEP310是個啥東西呢?
我們知道在同一個物理機/虛擬機上啟動多個JVM時,如果每個虛擬機都單獨裝載自己需要的所有類,啟動成本和內存占用是比較高的。所以Java團隊引入了CDS的概念,通過把一些核心類在每個JVM間共享,每個JVM只需要裝載自己的應用類,啟動時間減少了,另外核心類是共享的,所以JVM的內存占用也減少了。
CDS 只能作用於 Boot Class Loader 加載的類,不能作用於 App Class Loader 或者自定義的 Class Loader 加載的類。
在 Java 10 中,則將 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 出來的歸檔文件加快應用啟動速度
這一次的JDK 13中的JEP 350 ,在JEP310的基礎上,又做了一些擴展。允許在Java應用程序執行結束時動態歸檔類,歸檔類將包括默認的基礎層 CDS(class data-sharing)存檔中不存在的所有已加載的應用程序類和庫類。
目前,JDK13處於Release-Candidate Phase(發布候選階段),將於9月17日正式發布。目前該版本包含的特性已經全部固定,主要包含以下五個:
JEP 350,Dynamic CDS ArchivesJEP 351,ZGC: Uncommit Unused MemoryJEP 353,Reimplement the Legacy Socket APIJEP 354: Switch Expressions (Preview)JEP 355,Text Blocks (Preview)
下面來逐一介紹下這五個重要的特性。
Dynamic CDS Archives
這一特性是在JEP310:Application Class-Data Sharing基礎上擴展而來的,Dynamic CDS Archives中的CDS指的就是Class-Data Sharing。
那麼,這個JEP310是個啥東西呢?
我們知道在同一個物理機/虛擬機上啟動多個JVM時,如果每個虛擬機都單獨裝載自己需要的所有類,啟動成本和內存占用是比較高的。所以Java團隊引入了CDS的概念,通過把一些核心類在每個JVM間共享,每個JVM只需要裝載自己的應用類,啟動時間減少了,另外核心類是共享的,所以JVM的內存占用也減少了。
CDS 只能作用於 Boot Class Loader 加載的類,不能作用於 App Class Loader 或者自定義的 Class Loader 加載的類。
在 Java 10 中,則將 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 出來的歸檔文件加快應用啟動速度
這一次的JDK 13中的JEP 350 ,在JEP310的基礎上,又做了一些擴展。允許在Java應用程序執行結束時動態歸檔類,歸檔類將包括默認的基礎層 CDS(class data-sharing)存檔中不存在的所有已加載的應用程序類和庫類。