15

[概要]タブのJvisualvmヒープダンプには、保持されているサイズで最大のオブジェクトを検査する機能があります。

保持とはどういう意味ですか?オブジェクトツリーのサイズはどのように計算され、ここに表示されますか?
ここにオブジェクト(10M)とそのメンバーオブジェクト(5M)が表示されている場合、ヒープの影響をどのように計算すればよいですか。両方とも10Mまたは15Mのヒープを使用しましたか?
ファサードの巨大なアプリケーションオブジェクトが表示されないのはなぜですか?

ありがとう。

4

3 に答える 3

10

保持とはどういう意味ですか?

フルgc後の大きさ。たとえば、多数のエントリを持つWeakHashMapは、GCの後で空になる可能性があります。

オブジェクトツリーのサイズはどのように計算され、ここに表示されますか?

JVMは、内部APIを使用してこれを決定します。

ここにオブジェクト(10M)とそのメンバーオブジェクト(5M)が表示されている場合、ヒープの影響をどのように計算すればよいですか。両方とも10Mまたは15Mのヒープを使用しましたか?

合計は10MBです。これが最大の問題である場合は、100 MBしかないマシンがない限り、心配する必要はありません。(その場合、私はそれをアップグレードします)

ファサードの巨大なアプリケーションオブジェクトが表示されないのはなぜですか?

おそらく、彼らはあなたが思うほどメモリが大きくないのですか?たとえば、ロードするのに費用がかかる場合がありますが、それでも巨大にはなりません。

ところで:VisualVMは優れた空きメモリプロファイラーですが、明らかな問題を見つけるためにのみ役立ちます。比較のために、YourKit(無料の評価ライセンスを取得できます)のような商用プロファイラーを試してみます。

于 2012-09-26T11:39:25.423 に答える
0

VisualVM での「保持」の最適な定義は、ガベージ コレクション後に残るメモリの量だと思います。

場合によっては、他のオブジェクト (またはコレクション) を直接的または間接的に参照するため、「サイズ」よりも大きくなることがあります。

于 2020-04-28T06:30:30.450 に答える