总结:JVM调优之对象内存占用情况

由于对象内存大小涉及到GC回收的时延,对象越大,回收时间越长,尤其是有引用的时候,在GC年龄段内会在年轻代返回的拷贝,非常耗时,因此清楚项目中哪些对象占用的内存很大是很有必要的。闲话少说,直接上方法。

一、通过jps命令查看java 进程为812251;

二、生成堆内存活着的对象使用情况:一般情况下生成的文件会很大,我们项目alarm生成的文件2.2G。

jmap -dump:live,format=b,file=pid.hprof 812251

三、将生成的文件pid.hprof下载到本地(windows)进行分析

四、下载分析工具MemoryAnalyzer,下载地址:https://www.eclipse.org/mat/downloads.php

 

下载完成后,双击MemoryAnalyzer.exe,点击Open a Heap Dump

​​​​​​​

 

注意:MemoryAnalyzer的MemoryAnalyzer.ini会配置占用空间的最大内存,默认是1024M,而我们生成的堆文件一般都是超过2G的,所以肯定不够用,所以需要将内存改的大一点,我是改成了8G。

导入后惊喜来了:发现HostsServiceImpl类的对象,占用了1G内存!mygod!剩下的问题就是如何去优化HostsServiceImpl的对象生成了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值