Я создаю NSIS script, где значение Xmx для устанавливаемого java-приложения может быть установлено во время процесса установки. Я не уверен, правильно ли установлен этот параметр. Есть ли способ проверить настроенное значение Xmx при запуске приложения?
Как проверить настроенное значение Xmx для запуска Java-приложения
Ответ 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> , в котором будут подробно описаны текущие коллекции памяти и мусора вместе со стеками для всех потоков.