通过IDEA查看运行时某个java对象占用JVM大小及内存占用情况

1️⃣、在terminal终端中输入jps即可查看当前已启动的进程和对应的PID,如下图所示:pid=811

通过IDEA查看运行时某个java对象占用JVM大小及内存占用情况_第1张图片

2️⃣、执行命令:jmap -dump:format=b,file=heap.bin  

jmap 能查看jvm内存中,对象占用内存的情况,还提供非常方便的命令将jvm的内存信息导出的文件。

format=b是通过二进制的意思,-dump:format=b,file=heap.bin意思是:把内存结构全部dump到二进制文件heap.bin中。

3️⃣、执行命令:jhat -J-Xmx512m heap.bin   ,(ha指IBM的HeapAnalyzer)

通过IDEA查看运行时某个java对象占用JVM大小及内存占用情况_第2张图片

就可以将我们刚刚使用jmap导出的内存信息交给jhat解析了。

默认的情况下,它会监听7000端口。本机的地址就是,http://localhost:7000/

通过IDEA查看运行时某个java对象占用JVM大小及内存占用情况_第3张图片

    访问http://localhost:7000/histo/,大致可以看到一下的画面,这里列出对象,对象实例数量、总占用内存大小。点击进去之后可以看到“谁引用了这个对象,这个对象又引用了哪个”这些信息。不过因为展示的信息非常多,并没有想象中那样清晰可见。

通过IDEA查看运行时某个java对象占用JVM大小及内存占用情况_第4张图片

你可能感兴趣的:(idea)