Кто-нибудь знает приложение для просмотра памяти приложений Java?Или есть какой-то простой способ создать приложение для такого рода вещей?В C # - PullRequest
2 голосов
/ 03 сентября 2011

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

Итак, как мы смотрим в память работающего Java-приложения, как мы можем посмотреть, что происходит в стеке.

Есть ли какое-либо приложение, чтобы шпионить за памятью приложения Java Можно ли написать приложение для этого? в Visual C #.

Спасибо за любую помощь.

1 Ответ

2 голосов
/ 03 сентября 2011

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

Этот блог, кажется, содержит некоторую информацию по этому вопросу: http://javaworks.wordpress.com/2009/12/03/jvm-heap-dumps-generation-and-analysis/

Вот инструмент Oracle для анализа кучи Java: http://download.oracle.com/javase/6/docs/technotes/tools/share/jhat.html

Редактировать: К вашему сведению, в стеке можно предположить, что не так много.Предположительно, там размещены примитивы (учитывая отсутствие new), но объекты всегда размещаются в куче.Спорным исключением может быть виртуальная машина Java HotSpot, которая, как я слышал, выделяет некоторые объекты в стеке для повышения производительности.Я думаю, что вы, вероятно, имели в виду кучу.^ _ _ ^

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