推荐一款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

推荐一款JVM分析工具HeapHero_第1张图片

运行代码后,我们查看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格式):
推荐一款JVM分析工具HeapHero_第2张图片

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

推荐一款JVM分析工具HeapHero_第3张图片

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

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

推荐一款JVM分析工具HeapHero_第4张图片

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

你可能感兴趣的:(其他)