Отслеживание использования памяти в веб-приложении tomcat - PullRequest
4 голосов
/ 22 декабря 2008

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

Спасибо, J

Ответы [ 3 ]

5 голосов
/ 22 декабря 2008

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

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

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

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

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

3 голосов
/ 22 декабря 2008

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

alt text
(источник: oracle.com )

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

jrcmd <pid> print_object_summary

даст вам

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
 ...

Это бесплатно для разработки и оценки.

3 голосов
/ 22 декабря 2008

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

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