[size=medium] 我遇到一问题,就是在Eclipse上运行程序内存泄露了,使用的是自己安装的JVM(不是Eclipse自带的)。
我现在正采用Eclipse Memory Analyzer 来分析内存泄露的原因,但是在分析前,必须要得到内存泄露一瞬间的堆转储文件。
现在问题是:
eclipse -> run -> Open Run Dialog .. -> Java Application(找到你要运行的java类) -> Arguments -> VM arguments里输入楼上几位的参数
ps:楼上的参数是要jdk1.5.17后的jvm才支持的
eclipse里的运行程序的参数在, run configurations 里 有个arguments 在那里配置启动参数.. eclipse自己启动的参数在安装目录下的eclipse.ini文件里
1.设置如下所示的 JVM 参数:
-XX:+HeapDumpOnOutOfMemoryError
获得堆转储文件。
3.参考
[url]http://lavasoft.blog.51cto.com/62575/25492[/url]
设置JVM的参数
4.如果设置了JVM参数 -XX:+HeapDumpOnOutOfMemoryError JVM 就会在发生内存泄露时抓拍下当时的内存状态,可以通过设置如下 JVM 参数
-XX:+HeapDumpOnCtrlBreak 来按需获取堆转储文件。
从cmd控制台窗口进入java安装目录下的bin目录
VisualVM是集成了多个JDK命令工具的一个可视化工具,它主要用来监控JVM的运行情况,可以用它来查看和浏览Heap Dump、Thread Dump、内存对象实例情况、GC执行情况、CPU消耗以及类的装载情况。在JDK Update7之后,VisualVM作为JDK的一部分发布,但同时VisualVM也发布独立的版本。VisualVM必须运行在JDK1.6以上的VM环境下,但可以用它来监控JDK1.4以上的JVM。
[img]http://dl.iteye.com/upload/attachment/273556/47a349bd-8a46-3e98-9856-be7672af0944.png[/img]
参考:http://melin.iteye.com/blog/706456
官方不是有个叫jstat的工具吗?