しばらく実行した後にメモリ不足の例外をスローする Java コードがあります。私は netbeans プロファイラーを調査しましたが、ある特定の操作を行うと、Surviving Generations Metric が上昇します。ただし、プログラムのステータスをリセットしても (kill ではありません)、Surviving Generations Metric は減少しません。
生き残った世代の指標が減らないのはなぜですか?
しばらく実行した後にメモリ不足の例外をスローする Java コードがあります。私は netbeans プロファイラーを調査しましたが、ある特定の操作を行うと、Surviving Generations Metric が上昇します。ただし、プログラムのステータスをリセットしても (kill ではありません)、Surviving Generations Metric は減少しません。
生き残った世代の指標が減らないのはなぜですか?
生き残った世代のメトリックが意味するものを見たことがありますか?
1.6 で実行し、Java VisualVM (jvisualvm) を使用します。
プロセスを選択し、右クリックして [ヒープ ダンプ] を選択します。
しばらく実行してから、別のヒープ ダンプを取得します。
次に、[ファイル] > [メモリ スナップショットの比較] を使用して、2 つのダンプを比較します。
ここでも同じ問題がありますが、JUnit テストをプロファイリングする場合のみです。生き残った世代は直線的に成長しています。メイン メソッドで同じコードを実行すると、コードは期待どおりに動作します。