我试图找到一个旧的Java 1.4应用内存泄漏。 我曾尝试使用JMP但不幸的是我已经没有运气得到它的工作(它实际上是在Windows 7支持?)。
如果任何人的任何自由/开源Java 1.4内存分析器在Windows 7 64位绝对工作的人都知道,请告诉我。
我试图找到一个旧的Java 1.4应用内存泄漏。 我曾尝试使用JMP但不幸的是我已经没有运气得到它的工作(它实际上是在Windows 7支持?)。
如果任何人的任何自由/开源Java 1.4内存分析器在Windows 7 64位绝对工作的人都知道,请告诉我。
我用JMP直到我们移动到Java 1.6。
http://www.khelekore.org/jmp/
GCViewer是好的,如果你只是验证泄漏:
http://www.tagtraum.com/gcviewer.html
SAP已经贡献了内存分析器偏食赋予非常漂亮和精致的报告。 检查以下链接
http://www.eclipse.org/mat/
你已经尝试
jps -l
jmap -histo <pid>
然后,我会安装Java 6,运行相同的应用程序,并使用:
jconsole
我已经使用YourKit Java剖析http://www.yourkit.com 。
最后我做了以下内容:
-XX:HeapDumpPath=C:\Temp\HeapDump
起始应用程序时,参数 你在一个JVM 1.4,正确运行? 这不是一个1.6 JVM 1.4编译的类运行? 并且是那里,你不能运行在1.6 JVM的应用程序,至少在开发环境中的原因是什么?
如果不是,内置的HPROF剂应该工作,至少找到了内存泄漏。 它会告诉你哪些对象是活的 ,当你杀了你的程序,并在那里他们被分配。
我不是100%肯定,但我相信,你需要使用-Xrunhprof
调用选项(链接文档与调用-agentlib
,我认为可能在1.5中添加)。 另外,我觉得有一个支持的“现代”调试接口,所以可以与JConsole中使用的1.4版本。