Java アプリケーション内で現在使用されている永続世代 (PermGen) のサイズを測定する方法はありますか? VisualVM などの外部プロファイリング ツールを使用できません。
PermGen 内の Java クラスのメモリ消費量を見積もることができればさらに良いでしょう。バイトコードファイルのサイズにほぼ比例しますか?
10482 次
5 に答える
9
JDK に付属の MemoryMXBean を使用できます。しかし、実行中のアプリケーション内から permgen の使用状況を照会する方法はないと思います。MemoryMXBeanに関するドキュメント。
于 2010-11-01T18:01:39.163 に答える
2
JDK のjvisualvmツールとVisual GCプラグインを使用して、PermGenを含むすべての JVM ヒープ領域を監視できます。
于 2010-11-01T17:47:23.480 に答える
2
Windows を使用していない場合は、JDK に同梱されているjmapを試すことができます。
于 2010-11-01T17:50:20.107 に答える
0
PermGen のサイズは、クラス ファイルのサイズとは関係ありません。Sun によると、PermGen のデフォルト サイズは 64 MB です。増やしたい場合は、次を使用して明示的に設定できます。
-XX:PermSize=164m
Java コマンドラインまたは起動スクリプトで。これは、外部ツールに依存せずに設定されていることを知る方法でもあります。
編集:
この記事を読んで、PermGen が現在プログラムでどのくらい使用されているか (つまり、外部ツールなし) を判断してください。
http://frankkieviet.blogspot.com/2006/10/how-to-fix-dreaded-permgen-space.html
于 2010-11-01T17:46:55.560 に答える