首頁 > Java > java教程 > 主體

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

Linda Hamilton
發布: 2024-11-14 20:53:02
原創
378 人瀏覽過

Why is the MaxPermSize VM option ignored in JDK 8?

JDK 8 中的PermGen 刪除:為什麼忽略VM 選項

簡介

JDK 8帶來Java 虛擬機器(JVM)架構發生重大變化,包括消除永久代 (PermGen)。此更改影響了 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板