Permgen OutOfMemory,请问有什么手段或者工具可以看到Permgen中被intern()的String的具体内容?
一般Permgen里有2部分数据,一部分是加载的Class,一部分是String常量池(即调用了String.intern())。加载的Class的内容已经用Memory Analyzer分析出来了,但String常量池里的内容还不知道,请问,有没有什么方式或工具可以看到Permgen中被intern()的String常量池的具体内容?
一般Permgen里有2部分数据,一部分是加载的Class,一部分是String常量池(即调用了String.intern())。加载的Class的内容已经用Memory Analyzer分析出来了,但String常量池里的内容还不知道,请问,有没有什么方式或工具可以看到Permgen中被intern()的String常量池的具体内容?
JVM内存组成:
1、程序计数器:是一块较小的内存空间,它的作用是当前线程所执行的字节码的行号指示器。
2、Java虚拟机栈:存放每个线程执行方法的局部变量区、操作数栈。
本地方法栈:执行Native方法。Sun Hotspot虚拟机把本地方法栈与虚拟机栈合二为一。
3、Java堆
4、方法区(Perm代)
5、直接内存(Direct Memory),NIO使用Native函数库直接分配堆外内存。至于那些工具,如jmap,jinfo,jprofiler,jconsole,jvisualvm,memoryanalyzer都无法看到看到Permgen中被intern()的String常量池的具体内容的。