Какой хороший бесплатный инструмент для исследования непреднамеренного удержания объектов в Java? - PullRequest
10 голосов
/ 15 мая 2010

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

Моя IDE - Eclipse.

Ответы [ 5 ]

4 голосов
/ 15 мая 2010

Вот список инструментов с открытым исходным кодом, которые вы можете посмотреть: http://java -source.net / open-source / profilers . Конечно, JMap и JConsole также являются возможными решениями.

4 голосов
/ 15 мая 2010

Инструмент, подобный Eclipse MAT , поможет найти жадных свиней с памятью и даже имеет детектор утечки памяти.

Профилировщик памяти Visual VM также может помочь, если вам нужно перейти на более низкий уровень.

3 голосов
/ 15 мая 2010

В прошлый раз, когда я смотрел бесплатные профилировщики, они были не так хороши, как признанные коммерческие.

Рекомендую оценить

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

Хороший профилировщик, по сравнению с плохим, может сразу же сэкономить вам день отладки, и это платит за лицензию (и за людей, выполняющих отличную работу по разработке этих хороших инструментов).

Все три подключаются к Eclipse и позволяют начинать профилирование непосредственно из Eclipse, из вашего текущего проекта, поэтому нет необходимости в утомительной настройке CLASSPATH.

1 голос
/ 15 мая 2010

Sun's VisualVM бесплатна, но я большой поклонник JProfiler , который является коммерческим приложением, хотя вы можете получить 30-дневную пробную версию.

0 голосов
/ 16 мая 2010

Я бы начал с инструментов, которые поставляются с JDK, jconsole и jmap. На java.sun.com есть хорошая статья о мониторинге JVM .

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