Как я могу профилировать использование памяти Java без инсталлированной JVM (Java 1.1.8) - PullRequest
1 голос
/ 30 июня 2010

В настоящее время я пытаюсь определить причину высокого использования памяти в приложении Java, работающем на экзотической платформе, где я не знаю никакой инструментальной JVM.

У меня есть источник приложения, и я могу внести изменения в источник для целей тестирования.

Как я могу отладить использование памяти в этих условиях?

Если потребуется дополнительная информация, я буду рад предоставить. Я просто немного заблудился, пытаясь использовать такой старый jvm без особых инструментов.

Ответы [ 3 ]

2 голосов
/ 30 июня 2010

Если бы я был на вашем месте, я бы подошел к нему:

  1. Найдите функциональные области, которые, как вы знаете, требуют внимания.
  2. Сделайте резервную копию кода
  3. Начните вставлять операторы печати с начальным и конечным временем
  4. Посмотрите, что занимает много времени, и сузьте его.
1 голос
/ 30 июня 2010

Если вам нужно профилирование памяти - и я бы порекомендовал против этого - вы могли бы начать сериализацию объектов на диск, а затем измерить размер диска как приблизительную оценку объема памяти.

Если вы действительно хотите покопаться там, где обычно не должны быть, попробуйте пакет sun.misc , хотя я не знаю, сколько из этого было в 1.1.x.

1 голос
/ 30 июня 2010

Для Java 5 и более поздних версий это можно сделать с помощью агентов Java.Для более ранних версий - включая 1.1.8 - вы должны загрузить собственные агенты, чтобы сделать это.Если вы не можете обработать свой код, вы должны выполнить всю необходимую работу самостоятельно.

Один из подходов, позволяющий получить большую часть этого пути, - использовать версию log4j, совместимую с Java 1.1, которая позволяет вам по существу записывать строки, начинающиеся сметка времени.Затем его можно затем массировать, чтобы получить ответы на все, что вы хотите знать.

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