2016-11-08 3 views
2

Я работаю над проектом JAVA, который объединяет многие компоненты из многих команд.Эффективный способ найти, кто выделяет прямую память

Сегодня мы наблюдаем сильное потребление прямой памяти, но мы не можем найти, где оно было выделено.

Ищу эффективный способ (инструмент), чтобы исследовать такую ​​проблему

Спасибо за вашу помощь Philippe

+2

Oracle JVM поставляется с JVisualVM. Это отличный инструмент. – duffymo

ответ

3

На верхней части моей головы, я помню, чтобы использовать JProfiler или JVisualVM, может быть, один из это вариант для вас.

JVisualVM поставляется с виртуальной машиной Java. JProfiler можно скачать здесь: https://www.ej-technologies.com/products/jprofiler/overview.html

+1

Спасибо. Благодаря вам я обнаружил инструмент, который кажется очень полезным (до сих пор я работал только с jmc) Я установил плагин VisualVM-BufferMonitor, который предоставляет мне «представление» прямой памяти, но я ничего не могу найти что помогло бы мне «угадать», какие компоненты/функции запускают распределение прямой памяти (что было бы здорово для меня - получить стек вызовов каждый раз, когда выделяется буфер с прямой памятью) –