首頁  >  文章  >  Java  >  什麼取代了 JDK 8 中的 PermGen?

什麼取代了 JDK 8 中的 PermGen?

Susan Sarandon
Susan Sarandon原創
2024-11-19 01:04:02660瀏覽

What Replaced PermGen in JDK 8 and How Does It Work?

消除 JDK 8 中的 PermGen

升級到 JDK 8 後,您在嘗試啟動 Eclipse 時可能會遇到警告訊息。此警告表示「MaxPermSize」Java 虛擬機器 (JVM) 選項由於在 JDK 8 中被刪除而被忽略。

忽略「MaxPermSize」的原因

由「MaxPermSize」選項管理的永久代 (PermGen) 空間已從 HotK 8 中的 HotSpot 中刪除。這主要是由於幾個缺點:

  • 啟動時大小固定,難以調整。
  • 不透明且弱類型,導致調試挑戰。
  • 由於其限制,未來的改善有限。

MetaSpace:替代品PermGen

PermGen 已被 Metaspace 取代,Metaspace 是解決這些缺點的新空間。 Metaspace 有幾個優點:

  • 類別載入器特定的儲存區域,簡化分配。
  • 線性分配,無需單獨回收,提高效率。
  • 無需 GC 掃描或壓縮,減少開銷。
  • 無限的預設大小,避免潛在的記憶體

元空間調整

雖然元空間的最大大小通常是無限的,但您可以使用“-XX:MaxMetaspaceSize”標誌來設定它。此外,「-XX:MetaspaceSize」定義其初始大小。如果未指定,Metaspace 會根據執行時間需求動態調整。

總而言之,JDK 8 中 PermGen 的消除和 Metaspace 的引入帶來了 GC 性能的提高和運行時管理的簡化。開發人員應該了解「MaxPermSize」選項的棄用及其對應用程式的影響。

以上是什麼取代了 JDK 8 中的 PermGen?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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