memory analyzer是一款开源的Java监控分析工具,主要用来分析内存问题,包括内存泄露、性能分析和Java应用程序的状态与行为,通过可以分析那些调试代码无法发现的复杂问题,小编还带来了memory analyzer使用教程,需要的朋友赶快下载吧!
软件功能
1、MemoryAnalyzer软件可以帮你进行发现或者分析调试的代码等无法进行修复的问题
2、MemoryAnalyzer软件支持分析内存问题
3、这款java分析工具支持监控整个 Java 应用程序的状态与行为
4、还可以进行读取,使您的应用程序这运行时可以支持让Java 运行时环境的生产
memory analyzer使用教程
Memory Analyzer主要分析的是内存的使用情况,它能够打开的是.hprof格式的文件。为了得到该文件,我们先写好如下简单代码:
很简单不是么,为了让内存溢出罢了。不过先不要运行该程序,需要进行相应的设置之后才会有.hprof格式的文件生成。请看下图:
打开该程序的Debug Configurations之后,可以看到下图:
此时点击Arguments,设置VM参数为:
-verbose:gc -Xms20M -Xmx20M -XX:+HeapDumpOnOutOfMemoryError
参数含义:
–verbose:gc 在虚拟机发生内存回收时在输出设备显示信息,格式如下: [Full GC 268K->168K(1984K), 0.0187390 secs]该参数用来监视虚拟机内存回收的情况。
-Xms20M 设置应用程序的初始内存大小为20M
-Xmx20M 设置应用程序的能够使用的最大内存为20M(与-Xms设置大小相同可以避免堆自动扩展)
-XX:+HeapDumpOnOutOfMemoryError 可以让虚拟机在出现内存异常的时候自动Dump出当前的内存对转储快照以便日后进行分析
设置好了之后,点击apply,点击确定,那么就可以运行上面的程序,最后控制台输出如下:
这个时候,可以发现,已经生成了java_pid11072.hprof文件。那么,我们就可以尝试着去通过我们下载好的Memory Analyzer去分析了。我们通过下面的方式打开该文件:点击file的open file
找到存放本程序的文件夹,可以发现有这个java_pid11072.hprof文件,打开即可。
打开之后,是这个样子的。
分析性能
当然,我们可以很容易发现这个程序的问题,在Memory Analyzer的诊断中也给了我们提醒:
截图的意思是说:主线程的局部变量占据了太多的内存,达到了97.36%。实际上,一个ListArray自身占据不了多少内存,注意是其中的实例对象在一直创建,每创建一个对象就要放置到堆内存里面去,由此导致了堆内存溢出。
软件评论 您的评论需要经过审核才能显示
网友评论