Я пытаюсь запустить файл jar, но я хочу обработать максимальный размер кучи jvm. Размер Я использую параметр -Xmx80m, чтобы установить максимальный размер головы 80 МБ.
Я использую команду "top" моей операционной системы linux для мониторинга распределения памяти моего приложения, и я удивлен, что jvm использует больше памяти, чем я указал в параметре -Xmx (java -Xmx80m -jar myapp.jar). Точнее из моего верхнего вывода
VIRT: 257 м
RES: 109 м
Я думаю, что RES должен быть на максимальных 80 МБ, и если моему приложению нужно больше, чем 80 МБ, jvm выбрасывает исключение "недостаточно памяти" (или что-то в этом роде)
В моем приложении я использую внешнюю библиотеку. Использует ли эта библиотека свою собственную память помимо кучи, которую я указал в параметре?
В любом случае, как я могу ограничить использование памяти jvm, чтобы не преодолеть то, что я установил с параметром?
Обновление:
Является ли хорошим решением использовать ulimit (команда unix) для ограничения ресурсов, используемых JVM?
Я использую:
Java-версия "1.7.0_02"
Java (TM) SE Runtime Environment (сборка 1.7.0_02-b13)
Серверная виртуальная машина Java HotSpot (TM) (сборка 22.0-b10, смешанный режим)
на федоре 8 шт