jmap -heap
実行中のJava アプリケーションでコマンドを実行したところ、次のような結果が得られました。
C:\Program Files\Java\jdk1.7.0_05\bin>jmap -heap 2384 プロセス ID 2384 にアタッチしています。しばらくお待ちください... デバッガーが正常にアタッチされました。サーバー コンパイラが検出されました。 JVM バージョンは、新世代の並列スレッドを使用する
23.1-b03です。 スレッド ローカル オブジェクト割り当てを使用します。 同時マークスイープGC ヒープ構成: MinheapFreeratio = 40 MaxHeapFreeratio = 70 MaxHeapsize = 1073741824(1024.0MB) Newsize = 1310720 (1.25MB) MaxNewsize = 1759218604415 MB oldize = 5.548IT = 5.5448IS = 5.5448IS MB)
MaxPermSize = 201326592 (192.0MB)
G1HeapRegionSize = 0 (0.0MB)
Heap Usage:
New Generation (Eden + 1 Survivor Space):
capacity = 228261888 (217.6875MB)
used = 203794000 (194.3531036376953MB)
free = 24467888 (23.334396362304688MB)
89.28078260703775% used
Eden Space:
capacity = 202964992 (193.5625MB)
used = 198399360 (189.2083740234375MB)
free = 4565632 (4.3541259765625MB)
97.75053226913141% used
From Space:
capacity = 25296896 (24.125MB)
used = 5394640 (5.1447296142578125MB)
free = 19902256 (18.980270385742188 MB)
21.325304100550518% 使用済み
スペース:
容量 = 25296896 (24.125MB)
使用済み = 0 (0.0MB)
空き = 25296896 (24.125MB)
0.0% 使用済み
の同時マークスイープ生成:
容量 = 506445824 (482.984375MB)
使用済み = 1594792408 (15MB)
free = 346966416 (330.89295959472656MB)
31.489924576809226% used
Perm Generation:
capacity = 134217728 (128.0MB)
used = 72157448 (68.81470489501953MB)
free = 62060280 (59.18529510498047MB)
53.76148819923401% used
96874 interned Strings occupying 89695496 bytes.
したがって、Permgen の 68 MB には約 89 MB のインターンされた文字列があるようです。Permgen に格納されていないインターンされた文字列はありますか?