Рубрики
Без рубрики

Логические параметры JVM

Автор оригинала: Vlad Mihalcea.

Пытаясь создать дамп кучи Java, я вспомнил, что есть один вариант JVM, который я мог бы использовать для этой цели. Поскольку я не всегда могу запомнить названия этих опций, я обратился к документации Oracle .

Таким образом, я мог бы извлечь следующие аргументы:

-XX:-HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/logs/jvm/dumps/

После ограничения размера кучи Java значением, которое, как я знаю, слишком низкое, я ожидал, что дамп кучи будет создаваться всякий раз, когда я получал ошибку OutOfMemoryError. Но дамп не был сгенерирован. Я погуглил проблему, проверил наличие ошибок JVM, но единственной сообщенной проблемой было отсутствие использования, когда вы предоставляете параметры JVM после основного класса Java, но это был не мой случай.

Затем я наткнулся на немного другую версию моей первоначальной настройки (ту, которую я скопировал с сайта Oracle).:

-XX:+HeapDumpOnOutOfMemoryError

Затем я вспоминаю, что однажды читал о логических параметрах JVM, и тот же сайт Oracle подробно описывает это использование:

“Логические параметры включаются с помощью-XX:+ и выключаются с помощью-XX: -“.

Я думаю, что в таблице параметров Oracle JVM должна отображаться версия”+”, поскольку обычно это то, что вы ищете, особенно потому, что по умолчанию она отключена (поэтому версия “-” ведет себя так, как будто ее вообще нет).

Путь к папке должен указывать на папку, но если ваша настройка похожа на/logs/jvm/dumps/, и ваша ОС содержит только/logs/jvm, то вы не получите файл “java_pid.hprof” в папке/logs/jvm/dumps/, но файл дампа в/logs/jvm/, так как JVM не создает отсутствующие папки (он же mkdirs).