ヘッダーをスキップ
前へ
前へ
 
次へ
次へ

複数の同名のクラスがある場合の「傾向」タブでのリークの検出

いずれのクラス名でも、その名前を持つ各クラスが異なるクラス・ローダーによってロードされた場合に、複数のクラスがロードされる場合があります。一部のJVM環境では、このような状況が他の環境よりも多く発生します。ロードされた様々なクラスはすべて同一のクラス・ファイルから作成されている可能性があります。または、同じクラスの異なるバージョンである場合があります。たとえば、同一のアプリケーションの2つのバージョンを実行しているアプリケーション・サーバーなどです。それらは、たとえば命名規則に従っていないなどの理由で、同一の完全修飾クラス名を偶然使用しているだけのまったく異なるクラスである場合もあります。また、特定の名前を持つ一部のロードされたクラスのみでリークが発生し、他では発生していない場合があります。

状況に応じて、同名のクラスを区別することが重要である場合があります。別の状況では重要でないこともあります。このような理由から、「傾向」タブおよび「タイプ・グラフ」タブには、クラスの2つのビューが用意されています。デフォルトでは、同名のすべてのクラスは結合され、単一の結合されたタイプとして表示されます。同名の複数のクラスが存在するかどうかを見分ける最も簡単な方法は、アイコンを確認する方法です。結合タイプには、1つでなく2つのクラスの円または配列カッコのセットが表示されています。図: 同一タイプの複数のバージョンを示すツールヒントのように、該当するタイプに結合されているすべてのクラスをリストするツールヒントが表示されます。表内の他の列を有効にしてクラス・ローダー情報を表示することもできます。

結合されているタイプのいずれかで問題が発生した場合は、結合タイプの全体が赤く表示されます。その場合は個別のクラスを表示するモードに切り替え、すべてのクラスが同様に増加しているか、または個別のクラスを原因として選別できるかを判断できます。

同一タイプの複数のバージョンを示すツールヒント

この図の説明は次にあります。
「同一タイプの複数のバージョンを示すツールヒント」の説明

「傾向」タブのこのビューを展開してクラス・ローダー別のタイプを表示し、再び結合してデフォルトのビューに戻ることができます。

クラスを分割するには、次の手順を実行します。

「クラスの分割」ボタンをクリックします。

円で囲まれたCの文字を示します。

クラスを分割すると、クラス・ローダーおよびクラス・ローダーIDの列に、各タイプのクラス・ローダー情報がそれぞれ表示されます。

クラスを結合するには、次の手順を実行します。

「クラスの結合」ボタンをクリックします。

それぞれ文字Cが記載され重なり合った2つの円

クラス・ローダーおよびクラス・ローダーIDの列には、「複数」と示されています。