繁体   English   中英

哪些Java内存探查器应用程序可以在Windows 7 64位和Java 1.4 32位上运行?

[英]What Java memory profiler applications will work on Windows 7 64-bit with Java 1.4 32-bit?

我正在尝试在旧的Java 1.4应用程序中发现内存泄漏。 我尝试使用jmp,但是不幸的是我没有运气(它在Windows 7中确实受支持吗?)。

如果有人知道肯定可以在Windows 7 64位上运行的任何免费/开源Java 1.4内存分析器,请告诉我。

在使用Java 1.6之前,我一直使用JMP。

http://www.khelekore.org/jmp/

如果您只是要验证泄漏,则GCViewer很好:

http://www.tagtraum.com/gcviewer.html

SAP为Eclipse贡献了一个内存分析器,它提供了非常精美的报表。 检查以下链接

http://www.eclipse.org/mat/

你已经尝试过了吗

jps -l
jmap -histo <pid>

然后,我将安装Java 6,运行相同的应用程序,并使用:

jconsole

我已经使用了YourKit Java分析器http://www.yourkit.com

我最终做了以下工作:

  1. 启动应用程序时添加-XX:HeapDumpPath=C:\\Temp\\HeapDump参数
  2. 等到它崩溃并显示OutOfMemory异常
  3. 使用内存分析器(MAT)来查看正在使用太多内存的内容。

您在1.4 JVM上运行,对吗? 它不是在1.6 JVM上运行的1.4编译类吗? 是否有理由至少在开发环境中不能在1.6 JVM上运行应用程序?

如果不是这样,则内置的HProf代理应该可以正常工作,至少可以发现内存泄漏。 它会告诉您在终止程序时哪些对象是活动的 ,以及它们的分配位置。

我不确定100%,但是我认为您需要使用-Xrunhprof调用选项(链接的文档使用-agentlib调用,我认为可能在1.5中添加了该文件)。 另外,我认为有一个支持“现代”调试接口的1.4版本,因此可以与JConsole一起使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM