JVMのガベージコレクションの各フィールドの詳細なログ

JVMのガベージコレクションの各フィールドの詳細なログ。


デモのフルGC


[フルGC(エルゴノミクス)PSYoungGen:944K-> 890K(2048K)] [ParOldGen:7129K-> 7129K(7168K)] 8074K-> 8019K(9216K)、[メタスペース:3357K-> 3357K(1056768K)]、0.1213761秒] [タイムズ:ユーザー= 0.27 SYS = 0.00、リアル= 0.12秒]


二、全GCの詳細フィールド


フルGC(人間工学):GCタイプはフルGC表されます

[PSYoungGen:> 890K 944K-(2048K)]:フルGCはPSYoungGen方式を使用してマイナーGC、マイナーGCを引き起こす示してヒープGCが占有する前に、944Kは、新世代のメモリ空間を表し、890Kは、ヒープの後に占有する新世代のGCを表し、メモリ空間は、2048Kは、ヒープの新世代のメモリ空間全体の大きさを表しています。


ParOldGen:7129K-> 7129K(7168K)は:旧世代GCを表し、7129Kは以前に旧世代GCによって占有メモリ空間を表し、7129KはGC後、旧世代によって占有されたメモリ空間を表し、7168Kは、メモリ空間の旧世代を表し、 GCメモリが解放されていないの周りに見つけることができます。

8074K-> 8019K(9216K):8074K GC全体正面表さヒープメモリフットプリント、8019K後部全体GCヒープメモリフットプリント全体に発生を通して、9216Kヒープ全体のメモリ空間の大きさを表し、発生しました。

メタスペース:3357K-> 3357K(1056768K):メタスペースと永久性質は、メソッド領域JVM仕様で達成さ等に。しかし、それに代わって元と永久スペースの最大の違いに:人民元は、仮想マシン内のスペースはありませんが、ローカルメモリの使用、3357Kは以前に旧世代GCによって占有メモリ空間を表し、3357KはGC後、旧世代によって占有されたメモリ空間を表し、 、1056768Kは、あなたが部屋のメタスペースの割り当ての多くを見ることができるメモリ空間の古い世代を表します。

0.1213761秒:フルGC消費時間を示し

[時間:ユーザー= 0.27 SYS = 0.00、リアル= 0.12秒]は:ユーザー、ユーザー・スペース消費SYS時間が消費するユーザ空間で時間マイナーGCを示し、リアルタイム消費実を表します。


三、java8なぜ導入メタスペース、永久的な除去の代わりに

HotSpotのチームは、外部要因からの二つの部分、内部および外部要因が存在している、私たちはモチベーションのJEP 122(インセンティブ)の部分を見て永久世代を削除することにしました:

これは、JRockitとホットスポットの収束努力の一環です。(JRockitは永続的な世代を持っていないので)と恒久的な世代を構成していないために慣れているのJRockitの顧客は永久的な世代を設定する必要はありません。

それは大体永久的な世代を削除してもJRockitの融合にするための努力で、行われ(恒久的な世代が存在しないためのJRockit)、JRockitのユーザーが永続的な世代を設定する必要はありません。

内部要因から、によって恒久生成サイズ-XX:PermSizeをと-XX:使用中に発生する可能性が永久的な生成につながる限界MaxPermSizeを二つのパラメータ、およびこれらの2つのパラメータだけでなく、JVMメモリサイズ制限セットによって、メモリオーバーフローの問題が、バージョン8以降で交換するメタスペースを使用してJavaでの恒久的な世代のように完全に除去します。


メタスペース(次元空間)

これは、永続的な世代のメモリのオーバーフローが発生するという問題を回避するためには、Javaバージョン8以降は完全に永続的な生成を取り外して交換するメタスペースを使用して、と言います。クラスのメタ情報は、要素空間に格納されています。要素ヒープメモリ空間が使用されていませんが、ローカルメモリはスタック領域に接続されていません。だから、理論的には、同じ大きドルでどのくらいのスペース、それは永久的なメモリオーバーフローの問題ではありません使用可能なシステムメモリは、世代が存在します。


改革は永久的なチューニングを代表して、また必要であるあなたが永続的な世代のサイズを設定することができますが、非常に困難であるが、適切なサイズを決定することは困難である、などの数、それらの多くの要因、以来、定数の数の数を入力します番号のように。常設場所メタデータの生成は、フルGCで仮想マシンのパフォーマンスをより多くの消費を移動されます。一方、HotSpot仮想マシンのガベージコレクタの各タイプは、永久の特別な処理メタデータ生成が必要です。永久的なだけでなく、シームレスなスペース管理要素のメタデータ生成から剥奪、それがベースのメタデータを最適化したフルGCおよびそれに続く側面の同時分離を簡素化することができます。

メタスペースが、仮想マシンのメモリ内のローカルメモリを使用していません:メタスペースは、ホットスポット領域の実装である、それは永久的な世代間の最大の違いはありますさ。したがって、特定の理論をメタスペース利用可能な32ビット/ 64ビットのシステム・メモリ・サイズの大きさに応じて、無制限の視認性がない、あなたが設定する必要があります。


だから、メタスペースの面積は、それをリークしたメモリのだろうか?なぜ?

おすすめ

転載: blog.csdn.net/weixin_34055910/article/details/90806939