Отслеживание использования памяти в tomcat webapp

Есть ли хорошие инструменты для отслеживания использования памяти. В tomcat java webapp? Я ищу что-то, что может дать разбивку по классам или пакетам.

Спасибо, J

3 ответа

Я использую Netbeans IDE, и он может профилировать любой тип Java-проекта, включая webapps. Когда у вас есть настройка проекта в Netbeans, вы просто нажмете "Профиль" и ответите на несколько простых вопросов.

Очень просто создать новый проект и импортировать в него существующий код.

Вы можете посмотреть скриншоты этого здесь: http://profiler.netbeans.org/

Вы можете скачать Netbeans здесь: http://www.netbeans.org/

VisualVM также может работать на вас. Для него также доступно несколько плагинов. VisualVM отправляется с JDK с момента обновления JDK 6. Вы можете проверить его здесь: https://visualvm.dev.java.net/


jconsole может дать вам сводную статистику. Я использовал его в прошлом при тестировании нагрузки, чтобы определить размер загруженных классов (отметив до и после использования при загрузке LOTS объектов.) Обратите внимание, что использование продолжается до тех пор, пока не будет запущена сборка мусора, поэтому вы будете необходимо учитывать временные объекты в ваших расчетах.


Попробуйте детектор утечки памяти, который поставляется с JRockit Mission Control. Он может показать вам, какие типы классов наиболее распространены в куче и насколько они растут.

alt text http://download.oracle.com/docs/cd/E11035_01/jrockit/intro/wwimages/memleak2.gif

Вы также можете получить статистику из командной строки, запустив команду jrmcd, доступную в каталоге JROCKIT_HOME\bin. Например,

jrcmd <pid> print_object_summary</pid>

предоставит вам

31.8% 3198k 41907 -137k [C
11.9% 1196k 300 +0k [B
11.4% 1151k 49118 +6k java/lang/String
 6.1% 612k 5604 +0k java/lang/Class
 4.3% 431k 2388 +0k [I
 3.5% 353k 15097 +0k java/util/HashMap$Entry
 ...

Он может использоваться для разработки и оценки.

licensed under cc by-sa 3.0 with attribution.