MyEclipse Profile 结合visualvm 监控内存泄露
VisualVM是集成了多个JDK命令工具的一个可视化工具,它主要用来监控JVM的运行情况,可以用它来查看和浏览Heap Dump、Thread Dump、内存对象实例情况、GC执行情况、CPU消耗以及类的装载情况。在JDK Update7之后,VisualVM作为JDK的一部分发布,但同时VisualVM也发布独立的版本。VisualVM必须运行在JDK1.6以上的VM环境下,但可以用它来监控JDK1.4以上的JVM。
1:创建java工程VisualvmTest,写一个消耗内存的测试代码:
3:程序开始启动运行,同时弹出visualvm窗口,如下图,【profile】tab可以看到对象大小比例。【监控】可以看到对的运行走向。

4:可以发现byte数组暂用比较大。在byte[]右键菜单选择【生成快照并显示栈分配跟踪】。能够快速定位在什么地方消耗比较大的内存,能够快速解决问题:

参考资料:VisualVM远程监控
1 楼 ayufox 2010-07-06 VisualVM对Memory和Performance的剖析是上不了台面滴,只支持本地的剖析,基本上宣判没多大用途。另外有一个Profile插件,支持远程剖析,但是是基于采样(Sample)的,不准还别说,对性能还特别影响。我觉得基本上VisualVM没有什么亮点,一些好用的功能JConsole都有,而JConsole没有的功能又都比较失败。对内存剖析基本上jmap+Eclipse Memory Analyzer是王道,而对性能的剖析目前还没有看到特别棒的产品,JProfiler和TPTP对性能的trade-off都特别厉害 2 楼 GuolinLee 2012-02-03 正想了解这方面的东西,研究一下这个工具先