Java 用于在permgen中查看对象的工具

Java 用于在permgen中查看对象的工具,java,permgen,Java,Permgen,我有一些permgen溢出的问题。我可以使用什么工具来查看现在加载到permgen中的类以及它们使用了多少内存? 谢谢。看起来您搜索的是一个探查器。(例如,对于开源:)可能您有一个庞大的代码库,或者正在插入大量字符串 尝试: 您还可以尝试将堆转储到文件中,然后将其加载到中,这将为您提供有用的信息,例如泄漏嫌疑犯报告和控制树 jmap -dump:format=b,file=heap.bin 22982 如有必要,您可以使用-XX:MaxPermSizeJVM选项来增加PermGen空间。您是否

我有一些permgen溢出的问题。我可以使用什么工具来查看现在加载到permgen中的类以及它们使用了多少内存?
谢谢。

看起来您搜索的是一个探查器。(例如,对于开源:)

可能您有一个庞大的代码库,或者正在插入大量字符串

尝试:

您还可以尝试将堆转储到文件中,然后将其加载到中,这将为您提供有用的信息,例如泄漏嫌疑犯报告和控制树

jmap -dump:format=b,file=heap.bin 22982

如有必要,您可以使用
-XX:MaxPermSize
JVM选项来增加PermGen空间。

您是否可以指向任何具有探索perm gen空间选项的探查器。据我所知,他们大多数只探索堆,而不是perm gen空间。
permstat
选项现在在Windows上可用。java版本“1.6.0_31”java(TM)SE运行时环境(构建1.6.0_31-b05)java热点(TM)64位服务器虚拟机(构建20.6-b01,混合模式)
$ jmap -permstat 22982
Attaching to process ID 22982, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 17.0-b16
100691 intern Strings occupying 5641096 bytes.
finding class loader instances ..Finding object size using Printezis bits and skipping over...
done.
computing per loader stat ..done.
please wait.. computing liveness..done.
class_loader    classes bytes   parent_loader   alive?  type

<bootstrap>     303     1355992   null          live    <internal>
0xdd159fe8      9       94104   0xdd153c30      live    sun/misc/Launcher$AppClassLoader@0xae7fcfa0
0xdd153c30      0       0         null          live    sun/misc/Launcher$ExtClassLoader@0xae7b0178

total = 3       312     1450096     N/A         alive=3, dead=0     N/A
jmap -dump:format=b,file=heap.bin 22982