推荐一款JVM分析工具HeapHero

HeapHero可视化内存分析工具

HeapHero是一款简单的,易用的内存分析工具,无需登录在线生成分析报告。官网地址:

https://heaphero.io/heap-index.jsp#header

我们模拟一个内存溢出的操作,代码如下:

public class TestJvm {

	public static void main(String[] args) {
		String str="hello word";
		for(int i=0;i<1000000;i++){
			str+=str;
		}
		System.out.println(str);
	}
}

配置虚拟机初始内存及最大内存5M,及heap dump文件输出路径。

-Xms5m -Xmx5m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=E://temp.hprof

运行代码后,我们查看console输出:

....
java.lang.OutOfMemoryError: Java heap space
Dumping heap to E://temp.hprof ...
Heap dump file created [3985440 bytes in 0.062 secs]
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
	at java.util.Arrays.copyOfRange(Arrays.java:3664)
	at java.lang.String.<init>(String.java:207)
	at java.lang.StringBuilder.toString(StringBuilder.java:407)
	at com.uaf.activiti.action.TestJvm.main(TestJvm.java:14)

我们将文件上传到HeapHero进行分析(文件大的话最好压缩为zip格式):

分析完成后我们可以看到图形页面展示:

主要展示项有:堆统计,大对象,字符串重复,低效率对象,线程数,及优化建议等。

另外HeapHero很智能的给我们分析出内存溢出的原因,并进行了标注如下图:

通过HeapHero可以协助我们更快的定位到异常问题,从而提高我们的开发效率。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值