MaxPermSize VM オプションが JDK 8 で無視されるのはなぜですか?

Linda Hamilton
リリース: 2024-11-14 20:53:02
オリジナル
377 人が閲覧しました

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 はアプリケーションのメタデータを処理するための高度に最適化された効率的なソリューションを提供します。

以上がMaxPermSize VM オプションが JDK 8 で無視されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート