Как проверить настроенное значение Xmx для запуска Java-приложения

Я создаю NSIS script, где значение Xmx для устанавливаемого java-приложения может быть установлено во время процесса установки. Я не уверен, правильно ли установлен этот параметр. Есть ли способ проверить настроенное значение Xmx при запуске приложения?

Ответ 1

jps - хорошее решение, просто запустите

jps # shows pids
jps -v <pid> # shows params

не забудьте запустить его как пользователя, который запустил этот процесс, или он не будет работать должным образом.

Ответ 2

В моем случае jmap - лучшее решение, которое я мог бы найти:

jmap -heap <pid>

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

Команда jmap включена внутри jdk в каталоге bin.

Ответ 3

Дешевый и грязный (не уверен в надежности):

Runtime.getRuntime().maxMemory();

Успешно использовали следующее:

    MemoryMXBean memoryBean = ManagementFactory.getMemoryMXBean();
    memoryBean.getHeapMemoryUsage().getMax();

Ответ 4

Я большой поклонник kill -3 <pid> , в котором будут подробно описаны текущие коллекции памяти и мусора вместе со стеками для всех потоков.