1

VisualVM + VisualGC を使用して、このツールのメモリ使用量を分析しています。JVM とヒープ ダンプに関する私の誤解を明らかにしていると思われる、予期していなかったことに気付きました。

完全なコンテキストを提供するために、私がプロファイリングしているアプリケーションは、シリアライズされた巨大なブロブのルックアップを行い、その後、jammを使用してサイズを出力しています。その後、アプリはそのまま待機し、中止されるまで待機します。

VisualVM を使用すると、ヒープ使用量が予想どおりに増加していることがわかります。操作が完了し、アプリがスリープ状態になったら、VisualVM を使用して GC (または複数の GC、ボタンをクリックすることに夢中になります) をトリガーします。

  • その時点での使用ヒープは1,849,825,472 bytesで、PermGem の使用スペースは25,864,448 bytesです。
  • その時点で、明らかにしばらく時間がかかるヒープ ダンプを実行しますが、ヒープ ダンプが完了すると、使用されたヒープは1,944,542,296 bytesPermGen でほぼ同じになり25,892,800 bytesます。

  • ここにパンチがあります: ヒープ ダンプは合計バイト数を示しています2,299,816,089

そのような不一致を説明できるものは何ですか? 実験を数回繰り返しましたが、常に同じ結果が得られます。

4

0 に答える 0