Ответ 1
Вот список инструментов с открытым исходным кодом, на которые вы можете посмотреть: http://java-source.net/open-source/profilers. Конечно, JMap и JConsole также являются возможными решениями.
Моя многопоточная программа Java вылетает из-за того, что она заканчивается из кучного пространства, и я не думаю, что это нужно. Предполагая, что виновником является непреднамеренное удержание объекта, какой хороший бесплатный инструмент для расследования того, какие объекты непреднамеренно сохраняются?
Моя IDE - Eclipse.
Вот список инструментов с открытым исходным кодом, на которые вы можете посмотреть: http://java-source.net/open-source/profilers. Конечно, JMap и JConsole также являются возможными решениями.
Инструмент, подобный Eclipse MAT поможет найти жадных свиней памяти и даже детектор утечки памяти.
Профилировщик памяти Visual VM также может помочь, если вам нужно идти на более низком уровне.
В прошлый раз, когда я просматривал бесплатные профилировщики, они были не так хороши, как установленные коммерческие.
Я рекомендую оценить
и инвестировать деньги за лицензию инструмента, который вам больше всего нравится.Хороший профилировщик по сравнению с плохим может легко сэкономить вам день отладки и немедленно заплатить за лицензию (и для людей, которые отлично справляются с этими хорошими инструментами).
Все три подключения к Eclipse и позволяют начать профилирование непосредственно из Eclipse, из вашего текущего проекта, поэтому нет никакой утомительной работы по настройке CLASSPATH.
Sun VisualVM является бесплатным, но я большой поклонник JProfiler, который является коммерческим приложением, хотя вы можете получить 30-дневную пробную версию.
Я бы начал с инструментов, которые поставляются с JDK, jconsole и jmap. Существует хорошая статья о мониторинге JVM на java.sun.com.