9.4.2 インスタンス統計機能で出力するクラス別統計情報
ここでは,インスタンス統計機能で出力するクラス別統計情報の出力形式,出力項目および出力例について説明します。
- 〈この項の構成〉
(1) 出力形式と出力項目
インスタンス統計機能で出力するクラス別統計情報の出力形式を次に示します。
-
出力形式
Java Heap Profile ----------------------- ________________Size__Instances__Class________________ <total_size> <Instance_count> <class_name> <total_size> <Instance_count> <class_name> ...
-
出力項目
出力形式で示した各項目について説明します。
表9‒6 出力項目(インスタンス統計機能) 出力項目
意味
<total_size>
インスタンスの合計サイズがバイト単位で出力されます。
<Instance_count>
インスタンスの数が出力されます。
<class_name>
クラス名が出力されます。
(2) 出力例
インスタンス統計機能で出力するクラス別統計情報の出力例を,次のソースを例にして説明します。
public class instance { public static void main(String args[]) { classA cls_a = new classA(); try { Thread.sleep(20000); } catch (Exception e) {} } } class classA { classB a1; classC a2; classA() { a1 = new classB(); a2 = new classC(); } } class classB { classD b1; String b2; classB() { b1 = new classD(); b2 = null; } } class classC { String c1, c2; classC() { c1 = null; c2 = null; } } class classD { String d1, d2; classD() { d1 = null; d2 = null; } }
このソースの場合の,インスタンス構造を次の図に示します。
このようなインスタンス構造の場合,インスタンス統計機能では,次のように各クラスのサイズを加算します。
-
classAのサイズ:a1+a2+ b1+b2+ c1+c2+ d1+d2
-
classBのサイズ:b1+b2+ d1+d2
-
classCのサイズ:c1+c2
-
classDのサイズ:d1+d2
インスタンス統計機能の出力結果を次の図に示します。