什么Java内存分析器应用程序将在Windows 7 64位和Java 1.4 32位上运行?

我试图在旧的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 profiler http://www.yourkit.com。     
我最后做了以下事情: 启动应用程序时添加
-XX:HeapDumpPath=C:TempHeapDump
参数 等到它崩溃并出现OutOfMemory异常 使用Memory Analyzer(MAT)查看使用了如此多内存的内容。     
你在1.4 JVM上运行,对吗?它不是在1.6 JVM上运行的1.4编译类?您是否有理由不能在1.6 JVM上运行应用程序,至少在开发环境中是这样? 如果没有,内置HProf代理应该工作,至少找到内存泄漏。当你杀死程序时,它会告诉你哪些对象是实时的,以及它们被分配的位置。 我不是100%肯定,但我相信你需要使用
-Xrunhprof
调用选项(链接的doc调用
-agentlib
,我认为可能已经在1.5中添加)。另外,我认为1.4版本支持“现代”调试接口,因此可以与JConsole一起使用。     

要回复问题请先登录注册