据我所知,有许多不同的地方可以分配JVM堆内存:线程堆栈,内存映射文件(例如zip文件),NIO缓冲区,JNI库分配等。
但是我希望有前四个分配的规范标识,例如:
/apps/java/jdk1.7.0_05/bin/java -Xmx1024m -Xms1024m -XX:MaxPermSize=256m ...
0000000000400000 4K r-x-- /apps/java/jdk1.7.0_05/bin/java
0000000000600000 4K rw--- /apps/java/jdk1.7.0_05/bin/java
0000000001e69000 280920K rw--- [ anon ]
00000000b0000000 132288K rw--- [ anon ]
00000000b8130000 129856K rw--- [ anon ]
00000000c0000000 1048576K rw--- [ anon ]
00000030b4e00000 120K r-x-- /lib64/ld-2.12.so
...
我认为最后一个可能是堆,基于它的大小,但有谁知道其他三个是什么?能够为诊断目的识别尽可能多的anon
部分会很有帮助。