JDK 8 中的PermGen 刪除:為什麼忽略VM 選項
簡介
JDK 8帶來Java 虛擬機器(JVM) 架構的重大變化,包括消除永久代(永久代)。此更改影響了 Eclipse 和其他應用程式與 JVM 的交互方式。
問題
在 JDK 8 中執行 Eclipse 時,使用者可能會遇到警告訊息,指示 MaxPermSize VM 選項被忽略。此訊息提出了有關丟棄此參數的原因的問題。
忽略MaxPermSize 的原因
忽略MaxPermSize VM 選項的原因源自於與PermGen 相關的幾個缺點:
- 固定大小: PermGen 在啟動時具有固定大小,因此很難優化具有動態類別載入需求的應用程式的記憶體分配。
- 內部熱點類型: 儲存在 PermGen 中的物件是 Java 對象,由於它們在垃圾中的持久性,導致潛在的記憶體洩漏集合。
- 簡化集合: 刪除 PermGen 可以簡化完整的垃圾收集週期,消除對元資料的特殊迭代器的需要。
- 併發類數據釋放: MetaSpace 可以在GC 暫停之外並發釋放類數據,從而改進
- 未來的改進: PermGen 的消除為未來JVM 的改進和優化鋪平了道路,而這些改進和優化之前受到其限制。
元空間: 替換
在JDK 8 中,PermGen 已被替換由Metaspace 提供,它具有以下幾個優點:- 類別載入器親和性:
- Metaspace 與特定的類別載入器關聯,確保類別的生命週期與對應載入器的生命週期相符。 線性分配:
- 元空間使用線性分配,簡化記憶體 無單獨回收:
- 元空間不執行單獨回收,除了類別重定義和載入失敗,進一步減少開銷。 無GC掃描或壓縮:
- 在垃圾收集週期期間不會掃描或壓縮元空間對象,從而改進 最佳化調整:
結論
JDK 8 中刪除 PermGen 為 Java 應用程式帶來了顯著的效能和穩定性優勢。雖然 MaxPermSize VM 選項不再相關,但 Metaspace 提供了一個高度最佳化且高效的解決方案來處理應用程式元資料。
以上是為什麼 JDK 8 中忽略 MaxPermSize VM 選項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)