Какие приложения для профилирования памяти Java будут работать в 64-разрядной версии Windows 7 с 32-разрядной версией 1.4 Java? - PullRequest
0 голосов
/ 16 сентября 2010

Я пытаюсь найти утечку памяти в старом приложении Java 1.4. Я пытался использовать jmp, но, к сожалению, мне не повезло заставить его работать (действительно ли он поддерживается в Windows 7?).

Если кто-нибудь знает какие-либо профилировщики памяти Java 1.4 с открытым исходным кодом, которые определенно работают на 64-битной Windows 7, пожалуйста, сообщите мне.

Ответы [ 6 ]

1 голос
/ 16 сентября 2010

Я использовал JMP, пока мы не перешли на Java 1.6.

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

GCViewer хорош, если вы просто проверяете утечки:

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

0 голосов
/ 20 сентября 2010

Я закончил тем, что сделал следующее:

  1. Добавьте аргумент -XX:HeapDumpPath=C:\Temp\HeapDump при запуске приложения
  2. Дождитесь сбоя при исключении OutOfMemory
  3. Использовать Анализатор памяти (MAT) , чтобы посмотреть, что использует столько памяти.
0 голосов
/ 17 сентября 2010

Я использовал профилировщик Java YourKit http://www.yourkit.com.

0 голосов
/ 16 сентября 2010

Вы уже пробовали

jps -l
jmap -histo <pid>

А затем я установил бы Java 6, запустил бы то же приложение и использовал:

jconsole
0 голосов
/ 16 сентября 2010

SAP предоставила анализатор памяти для затмения, который дает очень хорошие и сложные отчеты.проверьте ссылку ниже

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

0 голосов
/ 16 сентября 2010

Вы работаете на 1.4 JVM, правильно? Это не 1.4-скомпилированный класс, работающий на 1.6 JVM? И есть ли причина, по которой вы не можете запустить приложение на 1.6 JVM, по крайней мере, в среде разработки?

Если нет, встроенный агент HProf должен работать, по крайней мере, для обнаружения утечки памяти. Он скажет вам, какие объекты живут , когда вы убиваете свою программу, и где они были размещены.

Я не уверен на 100%, но я считаю, что вам нужно использовать опцию вызова -Xrunhprof (связанный документ вызывает с -agentlib, который, я думаю, мог быть добавлен в 1.5) Кроме того, я думаю, что была версия 1.4, которая поддерживала «современный» интерфейс отладки, поэтому может использоваться с JConsole.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...