2015-03-03 2 views
5

У меня был сложный вопрос во время интервью сегодня. Они спросили меня, как найти основную причину ошибки из памяти в моем производственном коде. Я начал говорить о профилировщиках. Интервьюер потянул его в другом направлении, сказав, как мне генерировать трафик, который происходит в производстве, чтобы извлечь выгоду из профилировщика. Я понятия не имел. Любая информация будет очень полезна.Обнаружение утечки памяти в производственном коде

ответ

3

Профайлеры не лучший инструмент гоняться утечками памяти в производстве

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

решение взять дамп кучи (с помощью jmap например - зависит от JVM) и анализировать его с помощью такого инструмента, как отличный (и в свободном доступе) SAP Memory Analyzer (MAT)

+1

Примечание. Сброс кучи позволяет только заморозить сервер приложений, и иногда приложение может быть повреждено. И предположим, что вы выделили 12GB на jvm на производство, вам нужна другая машина с объемом более 12 ГБ для анализа дампа кучи. Вы также можете использовать jvisualvm для анализа. Он поставляется как часть JDK. –

Смежные вопросы