Думайте об инструментах обнаружения утечек памяти как о просто оптимизированной версии инструмента анализа памяти, который поможет вам найти проблему, не разбираясь с данными самостоятельно.
Я использовал Yourkit. Я бы сказал, что у этого есть обе особенности. Хотя он явно не указывает на «чувак, ваша утечка в этой строке кода», он предоставляет утилиту для сравнения снимков памяти, чтобы показать, что изменилось со временем, и предоставляет различные утилиты для отслеживания ссылок на объекты, чтобы выяснить, почему они все еще хранятся в памяти.
В зависимости от вашего определения инструментов обнаружения утечек, можно утверждать, что график в JConsole, показывающий использование динамической памяти, является инструментом обнаружения утечек. Посмотрите на график потребления кучи за достаточно длительный период использования ... если среднее значение продолжает расти, есть вероятность, что у вас есть утечка.
Я не связан с людьми из Yourkit, но я могу порекомендовать этот инструмент. Это может быть лучше, но это не плохо. Я использую его для анализа памяти и производительности процессора. Я регулярно тестирую нагрузку и память (JConsole / JMX и другие методы) нашего продукта и использую Yourkit, когда что-то кажется странным. Примерно раз в 2-4 месяца я делаю анализ ресурсов процессора, чтобы найти простые для устранения узких мест производительности (наше нагрузочное тестирование выявляет серьезные проблемы).