Подтвердить что ты не робот

Запросить кучу кучи java (дамп ядра) из приложения

Мне нужен способ запросить дамп кучи из приложения.

Обоснование: когда я сталкиваюсь с определенным условием ошибки, я хотел бы сбросить кучу, чтобы я мог видеть, что держится в памяти.

Но я хотел бы автоматизировать это (например, когда я обнаружил, что произошло какое-то конкретное условие. Или когда сторожевой таймер больше не получает свои пинги. Когда какой-то тест выходит из строя). Таким образом, мне нужен способ сбросить кучу из самого приложения. Я не могу найти его с материалом MX beans. Хотя MX beans может давать очень хорошие трассировки стека с информацией о мониторе и "доступном синхронизаторе", информацией о тупике и конфликте, я не могу найти способ запросить дамп кучи. Есть ли такой способ? Или некоторыми косвенными средствами, например, как это делают эти вещи JVisualVM? И можно сказать JVM о сбросе ядра в OutOfMemoryExceptions..?

4b9b3361

Ответ 2

Как использовать опцию VM -XX:+HeapDumpOnOutOfMemoryError, чтобы заставить VM HotSpot генерировать дамп кучи, когда у него закончилась нехватка памяти?