У меня есть приложение Java, которое исчерпывает память, но я понятия не имею, какой код выделяет память. Есть ли приложение, с которым я могу проверить это? Я использую Eclipse.Java: узнать, что использует всю память
ответ
Поскольку вы используете eclipse, я бы порекомендовал плагин Eclipse Memory Analyzer. Этот инструмент отлично работает и даже предоставит отчет с вероятными подозрениями на утечку. Я без проблем посмотрел на кучи грунта 1G. Я просто использую jconsole, включенную в JDK, чтобы получить дамп.
Также здесь отличный инструмент blog об использовании этого инструмента одним из авторов инструмента.
Это также бесплатно.
Вы хотите получить Профилировщик.
Я имел большой успех с JProfiler
http://www.ej-technologies.com/products/jprofiler/overview.html
YourKit является отличным инструментом, который я использовал много раз, чтобы найти и проблемы с производительностью документа. Для этого также можно использовать Eclipse с платформой TPTP. Он также хорошо работает с удаленными серверами приложений (вам нужно включить профилирующие агенты и включить удаленное отладку в JVM), но он позволяет запускать профилирование практически в любой среде J2EE.
Вам необходимо использовать профайлер памяти. Вы можете использовать Sun JVM Tool Interface или сторонний профилировщик, например JProfiler. Eclipse также имеет инструменты профилирования, называемые Test & Performance Tools Platform (TPTP).
Существует множество бесплатных инструментов, но JProfiler очень приятный. – ggb667
Уверен, что у каждого свой любимый, но я рекомендую Netbeans.
VisualVM - это визуальный инструмент, объединяющий несколько инструментов JDK с командной строкой и облегченные возможности профилирования. Предназначен для использования как в производстве, так и в разработке, он еще больше расширяет возможности мониторинга и анализа производительности платформы Java SE.
И он включен в JDK.
Для быстрого профилирования или если вы не используете Eclipse или более старые версии jvm, hprof - достойная альтернатива. (Я просто добавляю это как ссылку.).
Одним из важных преимуществ hprof является то, что он имеет минимальные зависимости: часть JDK и отсутствие графического интерфейса. Таким образом, вы можете легко установить и запустить его непосредственно на производственном сервере, даже если у него нет графического интерфейса. Попробуйте это с помощью Eclipse ;-). – sleske
Мне пришлось найти источник утечки памяти, который на днях произвел сброс кучи 2.6G. Джат потребовал невероятный размер кучи 20Г, чтобы пробить его без сбоев. Анализатор памяти Eclipse сделал это под 10G. Тем не менее, я нашел оба инструмента полезными, но сначала порекомендовал бы анализатор памяти для более эффективного использования памяти и более простой в использовании.
Я был очень поражен количеством используемой памяти, но могу вас заверить, если я использовал меньше, я ошибся с OutOfMemory.
Я обнаружил утечки памяти, используя HP Diagnostics Profiler бесплатную оценку (неограниченно для 5 потоков). Он позволяет отслеживать распределение памяти и анализировать кучи визуально, легко.
- 1. Как узнать, что использует память при переполнении кучи в Java?
- 2. Что использует всю оперативную память в этом скрипте python?
- 3. Spark не использует всю сконфигурированную память
- 4. Почему Jetty не использует всю выделенную память?
- 5. R не использует всю оперативную память
- 6. сценарий powershell, который использует всю память
- 7. Как среда выполнения Java использует встроенную память?
- 8. Нельзя использовать всю память
- 9. Redis занимает всю память сервера. Что делать?
- 10. Чтение больших текстовых файлов по-прежнему использует всю мою память
- 11. Apache использует всю память без посетителей на сайте
- 12. Пассажир использует всю мою RAM-память и мои серверные спады
- 13. YARN не использует всю память, доступную в экземпляре Google Dataproc
- 14. numpy.who на всю память
- 15. clEnqueueNDRangeKernel заполняет всю память
- 16. Как узнать, максимизирована ли моя страница (использует всю ширину страницы)?
- 17. Моя программа Память используется 100%! Как я могу узнать, что использует столько памяти?
- 18. Как потреблять всю память?
- 19. Как узнать, что все классы/файлы jar использует приложение Java
- 20. Идеально, что MongoDB использует память 150 МБ?
- 21. Как узнать, что ест память в Cocos2d
- 22. Как Java использует память XMX и XMS?
- 23. Как узнать, когда выпущена память объекта Java?
- 24. Использует ли оператор присваивания память в Java?
- 25. Java использует эффективную память ключевого слова эффективную?
- 26. Как Java (Android) повторно использует свободную память?
- 27. Как узнать, что appid использует мое приложение
- 28. Как узнать, что JDK IntelliJ IDEA использует
- 29. Xcode: Как узнать, что NSLog автоматически использует?
- 30. Как узнать всю память, которую занимает объект, когда объект имеет некоторую динамически распределенную память?
+1: хороший инструмент ... знаете ли вы, есть ли какие-либо ограничения относительно версии jvm или вида jvm? – LB40
Я не уверен в ограничении jvm, я использовал его в 1.5 и 1.6.Но мне пришлось сбрасывать кучи с более старыми версиями java, на которые опирается инструмент. – broschb