java程序如何统计占用内存 (java定时任务占用内存咋解决)

一、查看项目运行时的进程ID

jps

java怎么看哪个对象占用内存,java内存占用过高怎么排查问题

二、导出运行信息到二进制文件中

# 选择想要查看程序的进程ID,例如 
jmap -dump:format=b,file=heap.bin 20772

不能在系统目录中创建,会提示权限不足!!!

java怎么看哪个对象占用内存,java内存占用过高怎么排查问题

成功后如图:

java怎么看哪个对象占用内存,java内存占用过高怎么排查问题

三、jhat解析文件并启动查看程序

jhat -J-Xmx1024m heap.bin

成功后:

java怎么看哪个对象占用内存,java内存占用过高怎么排查问题

四、查看

访问地址:http://localhost:7000/histo/

java怎么看哪个对象占用内存,java内存占用过高怎么排查问题

Total Size就是对象占用内存的大小(Bytes)

想要查看某个对象,直接浏览器“ Ctrl+f ”搜索即可

java怎么看哪个对象占用内存,java内存占用过高怎么排查问题

可以查看对象内部,成员变量的值和占用内存的大小

java怎么看哪个对象占用内存,java内存占用过高怎么排查问题

关闭运行窗口后程序关闭