Как захватить дамп кучи без данных в Java - PullRequest
0 голосов
/ 19 января 2019

Я установил -Xmx100g для моей java-программы (я должен), теперь, когда я подозреваю, что в программе есть утечка памяти, сбор и загрузка дамп-памяти объемом 100 ГБ занимает более двух часов в каждой итерации (когда я что-то меняюв коде и хотите проверить, если это исправило утечку памяти путем анализа дампа кучи).Большая часть кучи - это данные (например, половина - содержимое текстового файла), и я действительно не беспокоюсь о содержимом объекта при анализе кучи.

Так как я могу пропустить дамп данных кучи и получить как можно меньшедамп кучи для анализа утечки памяти (только метаданные объекта, а не их значения)?

1 Ответ

0 голосов
/ 19 января 2019

Если куча занимает слишком много времени для дампирования, уменьшите размер кучи с помощью -Xmx....

Если у вас есть утечка памяти, сомнительно, что вам понадобится куча 100 ГБ, чтобы найти доказательства.Так что уменьшите его.

Так как я могу пропустить дамп данных кучи и получить наименьший возможный дамп кучи для анализа утечки памяти (только метаданные объекта, а не их значения)?

Я не думаю, что это возможно.Кроме того, во многих случаях именно значения (например, цепочки ссылок) позволяют вам / профилировщику идентифицировать происхождение протекающих объектов.

...