1

Я пытаюсь контролировать использование памяти моей Java-программой. На данный момент я использую «Топ». Top - это инструмент командной строки, который показывает использование памяти вашей программой. Приведенный пример будет похож на следующее:

$# top -p <pid>

Выход:

PID: <PID>
User: <user>
VIRT: 513M 
%MEM: 25.1

Я пытаюсь найти лучший инструмент для мониторинга памяти, который может показать мне, какие Java-объекты находятся в памяти, их размер и т.д.

2 ответа2

2

Вы можете использовать VisualVM для мониторинга использования памяти в процессах Java. Помимо мониторинга общей кучи, он также включает в себя профилировщик памяти, чтобы вы могли видеть, какие объекты используют больше всего памяти.

Он также включен в последнюю версию JDK как jvisualvm.

1

Может быть, стоит посмотреть на jvmtop . Это инструмент командной строки, который обеспечивает просмотр в реальном времени по нескольким показателям.

Пример вывода режима обзора виртуальной машины:

 JvmTop 0.3 alpha (expect bugs)  amd64  8 cpus, Linux 2.6.32-27, load avg 0.12
 http://code.google.com/p/jvmtop

  PID MAIN-CLASS      HPCUR HPMAX NHCUR NHMAX    CPU     GC    VM USERNAME   #T DL
 3370 rapperSimpleApp  165m  455m  109m  176m  0.12%  0.00% S6U37 web        21
11272 ver.resin.Resin [ERROR: Could not attach to VM]
27338 WatchdogManager   11m   28m   23m  130m  0.00%  0.00% S6U37 web        31
19187 m.jvmtop.JvmTop   20m 3544m   13m  130m  0.93%  0.47% S6U37 web        20
16733 artup.Bootstrap  159m  455m  166m  304m  0.12%  0.00% S6U37 web        46

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .