Ответы:
используйте аргументы -Xms<memory>
-Xmx<memory>
. Используйте M
или G
после цифр для обозначения мегабайт и гигабайт соответственно. -Xms
указывает минимум и -Xmx
максимум.
-Xmx524M
и процесс занимает 1,2 ГБ ОЗУ. (?)
Вам не стоит беспокоиться об утечке памяти из стека (это очень редко). Единственный раз, когда вы можете вывести стек из-под контроля, - это бесконечная (или действительно глубокая) рекурсия.
Это просто куча. Извините, сначала не полностью прочитал ваш вопрос.
Вам необходимо запустить JVM со следующим аргументом командной строки.
-Xmx<ammount of memory>
Пример:
-Xmx1024m
Это позволит использовать для JVM максимум 1 ГБ памяти.
-XX:MaxDirectMemorySize
. Не то чтобы я тщательно профилировал, чтобы убедиться, но все же;)
MaxDirectMemorySize
затрагивает только буферы NIO. Все виды другой собственной памяти используются JVM.
Если вы хотите ограничить память для jvm (а не размер кучи) ulimit -v
Чтобы получить представление о разнице между jvm и кучей памяти, взгляните на эту отличную статью http://blogs.vmware.com/apps/2011/06/taking-a-closer-look-at-sizing-the- Java-process.html
ulimit
команда Linux? Я быстро поискал в Google и не увидел никакой связи между ulimit
JVM и JVM. Y
Приведенный выше ответ отчасти правильный, вы не можете изящно контролировать, сколько собственной памяти выделяет java-процесс. Это зависит от того, что делает ваше приложение.
Тем не менее, в зависимости от платформы вы можете использовать какой-либо механизм, например ulimit, для ограничения размера java или любого другого процесса.
Только не ожидайте, что он изящно выйдет из строя, если достигнет этого предела. Сбои выделения собственной памяти намного сложнее обрабатывать, чем сбои выделения в куче java. Существует довольно высокая вероятность того, что приложение выйдет из строя, но в зависимости от того, насколько критично для системы, уменьшить размер процесса, который может вам все еще подходит.
NativeHeap можно увеличить на -XX: MaxDirectMemorySize = 256M (по умолчанию 128)
Я никогда этим не пользовался. Может быть, тебе это пригодится.