Я создаю сценарий NSIS, в котором значение Xmx для устанавливаемого Java-приложения может быть установлено в процессе установки. Я не уверен, правильно ли установлен этот параметр. Есть ли способ проверить настроенное значение Xmx при запуске приложения?
В моем случае, jmap - лучшее решение, которое я мог найти:
jmap -heap <pid>
Приведенная выше команда показывает полную конфигурацию кучи + текущее использование.
Команда jmap включена в jdkв каталоге bin.
Дешево и грязно (не уверен в надежности):
Runtime.getRuntime().maxMemory();
Также успешно использовали следующее:
MemoryMXBean memoryBean = ManagementFactory.getMemoryMXBean(); memoryBean.getHeapMemoryUsage().getMax();
jps - хорошее решение, просто запустите
jps
jps # shows pids jps -v <pid> # shows params
, не забудьте запустить его как пользователь, запустивший процесс, иначе он не будет работать должным образом.
Я большой поклонник kill -3 , которая даст вам подробную информацию о текущей памяти и сборках мусора вместе со стеками для всех потоков.