メモリー・プロファイリングについて

メモリー・プロファイラは、プログラムによるJavaヒープ内のメモリー使用に関するビジュアルな統計分析を提供します。メモリー・プロファイラを使用し、プログラムでのメモリー・リークを追跡および特定します。

メモリー・プロファイラは、指定された間隔で、アプリケーションのメモリー使用量に関する情報を取得します。メモリー・プロファイラを一時停止するか、またはアプリケーションが終了すると、最後の間隔について、Javaヒープ内の使用メモリーや解放済メモリーなどのプロファイラ情報が表示されます。ユーザー・インタフェースのスライダ・コントロールを使用し、使用可能なサンプルをスクロールできます。メモリー・プロファイラでメモリー・リークの可能性がある箇所を特定してから、ソース・コードにジャンプして修正し、修正内容をテストできます。プロファイラで情報をソートおよび表示した後、メモリー・プロファイリング・データをHTMLファイルに保存できます。

メモリー・プロファイラを使用する場合、まず自動サンプリングを行い、プログラムによるヒープ使用量のグローバル・ビューを表示します。プログラムのタイプに応じたサンプリング間隔およびスライダの深さの組合せを選択します。長い間隔および深いスライダは、サーバーなどの長時間実行アプリケーションに適しています。短い間隔は、高速な集中型アプリケーションに適しています。サンプリング率を低く、スライダを深くし、広範囲のインスタンスを定義した場合、プロファイラUIに対するメモリー要求が増大します。

観察対象を吟味してから、インスタンスを組み込むかまたは除外して、検索を詳細化します。検索範囲を狭めると、メモリーの問題を発生させることなく、より多くのサンプルまたはより高いサンプリング率を要求できます。

自動サンプリングによりプログラムのメモリー使用量を監視し、ヒープ上での動作が不十分な機能を検出した後、手動サンプリング率に切り替えて(更新間隔を0に設定)、この機能の実行時の状況を正確に把握します。


メモリー・プロファイリング