首頁 >Java >java教程 >為什麼 JDK 8 中忽略 MaxPermSize VM 選項?

為什麼 JDK 8 中忽略 MaxPermSize VM 選項?

Linda Hamilton
Linda Hamilton原創
2024-11-14 20:53:02456瀏覽

Why is the MaxPermSize VM option ignored in JDK 8?

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掃描或壓縮:
  • 在垃圾收集週期期間不會掃描或壓縮元空間對象,從而改進
  • 最佳化調整:
元空間可以使用-XX:MaxMetaspaceSize 和-XX:MetaspaceSize 標誌進行調整,從而實現更靈活的記憶體管理。

結論

JDK 8 中刪除 PermGen 為 Java 應用程式帶來了顯著的效能和穩定性優勢。雖然 MaxPermSize VM 選項不再相關,但 Metaspace 提供了一個高度最佳化且高效的解決方案來處理應用程式元資料。

以上是為什麼 JDK 8 中忽略 MaxPermSize VM 選項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn