簡體   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