Leyden 儲存庫的目的是對 Java 程式的啟動時間、達到峰值效能的時間和佔用空間進行原型改進 。
Leyden 原型包含許多最佳化,將工作從執行時轉移到早期階段,這些階段稱為訓練執行。在訓練執行中,我們根據對應用程式實際行為的觀察,預先計算各種資訊,並將位元組碼預編譯為本機程式碼。
Leyden repo 密切跟蹤 JDK 主線開發。我們通常只比主線JDK repo晚幾周。我們在 JDK 主線上實現了以下改進:
- 統一快取資料儲存(JDK-8320264) :這是對CDS 的增強:
- 除了類後設資料和堆物件之外,現在 CDS 還可以用於儲存分析資料以及已編譯的 Java 方法。
- 我們簡化了 CDS 檔案的建立,以便您可以輕鬆地在 Java 應用程式中使用 CDS。
- 該功能可透過新的 VM 標誌訪問-XX:CacheDataStore。
- 可以使用新的 VM 標誌來訪問此功能-XX:+PreloadSharedClasses。(注意,當 JDK-8315737 整合到 JDK 主線時,此標誌將被重新命名)。
- 該功能由新的 VM 標誌-XX:+RecordTraining和啟用-XX:+ReplayTraining。
- -XX:+StoreCachedCode此功能由新的 VM 標誌、-XX:+LoadCachedCode和啟用-XX:CachedCodeFile。
- 目前,本機程式碼儲存在單獨的檔案中,但我們的計劃最終將本機程式碼儲存在 CDS 存檔檔案中。
- 該功能由新的 VM 標誌啟用-XX:+ArchiveDynamicProxies。
- 該功能由新的 VM 標誌啟用-XX:+ArchiveReflectionData。
- 該功能由新的 VM 標誌啟用-XX:+ArchiveLoaderLookupCache。