Hitachi

uCosminexus Application Runtime - Cosminexus Developer's Kit for Java 機能解説・リファレンス


4.8.1 Tenured増加要因の基点オブジェクトリスト出力機能の概要

Tenured増加要因の基点オブジェクトリスト出力機能では,Tenured領域内不要オブジェクト統計機能を使って特定した,不要なオブジェクトの基点となるオブジェクトの情報をリストにしてスレッドダンプファイルに出力します。

また,Tenured増加要因の基点オブジェクトリスト出力機能は,Tenured領域内不要オブジェクト統計機能が前提になります。

Tenured増加要因の基点オブジェクトリスト出力機能の仕組みについて説明します。

〈この項の構成〉

(1) 基点となるオブジェクトのリスト出力

Tenured増加要因の基点オブジェクトリスト出力機能は,Tenured領域内不要オブジェクト統計機能の処理のあとに続けて実行されます。Tenured領域内不要オブジェクト統計機能で実行する処理については,「4.7.1 Tenured領域内不要オブジェクト統計機能の概要」を参照してください。

Tenured増加要因の基点オブジェクトリスト出力機能は,Tenured領域内のアドレスの低い順にオブジェクトを検索します。検索したオブジェクトの中で,すでに参照関係で調べられているオブジェクト,および不要なオブジェクトのクラス情報を取得して,出力候補リストに保存します。

出力候補リストに保存した情報をインスタンスサイズの合計でソートし,合計サイズがjheapprofコマンドの-rootobjectinfostオプションで指定した値以上のクラス情報だけが出力されます。

(2) 不要なオブジェクトの参照関係の確認

Tenured増加要因の基点オブジェクトリスト出力機能を実行して基点となるオブジェクトを取得する際の,Tenured領域内の不要オブジェクトによる参照関係の例を示します。

インスタンス数
  • classA:a1が存在するため1

  • classB:b1,b2の2つが存在するため2

  • classC:c1,c2の2つが存在するため2

インスタンスサイズの合計
  • classA:classAのインスタンス(a1)と,その参照先のインスタンス(b1,b2,c1,c2)のサイズを合計した122

  • classB:classBのインスタンス(b1,b2)と,その参照先のインスタンス(c1,c2)のサイズを合計した22

  • classC:classCのインスタンス(c1,c2)を合計した2

    図4‒15 Tenured領域内の不要なオブジェクトによる参照関係の例

    [図データ]

Tenured領域内不要オブジェクト統計機能を実行してこの図のような参照関係の情報を取得した場合に,Tenured増加要因の基点オブジェクトリスト出力機能で取得する情報を次に示します。

図4-15」の参照関係の情報をTenured増加要因の基点オブジェクトリスト出力機能を実行して出力した場合の出力例を次に示します。

Garbage Profile Root Object Information
---------------------------------------
*, A # 122