9.3.1 クラス別統計機能の概要
各クラスのインスタンスが持つメンバの配下にあるすべてのインスタンスのサイズを,クラスごとに統計情報として拡張スレッドダンプに出力できます。この統計情報をクラス別統計情報といいます。クラス別統計情報を複数回出力すると,GCによるJavaオブジェクトの変化や,寿命が短いJavaオブジェクトの状態,クラスごとのサイズの変化,Javaオブジェクトの親子関係などを調査できます。これらの情報は,1トランザクション当たりのメモリ使用量の測定や,メモリリークの検出などに利用できます。
クラス別統計情報は,次に示す機能によって出力されます。
-
インスタンス統計機能
-
STATICメンバ統計機能
-
参照関係情報出力機能
-
統計前のGC選択機能
-
Tenured領域内不要オブジェクト統計機能
-
Tenured増加要因の基点オブジェクトリスト出力機能
各機能については,「9.3.2 クラス別統計機能を前提とする機能」を参照してください。
また,クラス別統計機能では,Javaヒープ(Eden領域,Survivor領域およびTenured領域を合わせたもの)にあるインスタンスを統計対象とします。さらに,明示管理ヒープ機能を使用している場合には,Explicitヒープにあるインスタンスも統計対象にできます。クラス別統計情報の出力方法については,「9.3.3 クラス別統計情報の出力」を参照してください。
- 参考
-
拡張スレッドダンプは,デフォルトで出力されるように設定されています。拡張スレッドダンプを取得するための設定については,「3.3.17(1) JavaVMのスレッドダンプ取得の設定」を参照してください。出力情報については,「5.5 JavaVMのスレッドダンプ」を参照してください。
また,クラス別統計情報は,CSV形式に出力することもできます。クラス別統計情報をCSV形式で出力する方法については,「9.10 クラス別統計情報解析機能」を参照してください。