Ответы:
используйте аргументы -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 и не увидел никакой связи между ulimitJVM и JVM. Y
Приведенный выше ответ отчасти правильный, вы не можете изящно контролировать, сколько собственной памяти выделяет java-процесс. Это зависит от того, что делает ваше приложение.
Тем не менее, в зависимости от платформы вы можете использовать какой-либо механизм, например ulimit, для ограничения размера java или любого другого процесса.
Только не ожидайте, что он изящно выйдет из строя, если достигнет этого предела. Сбои выделения собственной памяти намного сложнее обрабатывать, чем сбои выделения в куче java. Существует довольно высокая вероятность того, что приложение выйдет из строя, но в зависимости от того, насколько критично для системы, уменьшить размер процесса, который может вам все еще подходит.
NativeHeap можно увеличить на -XX: MaxDirectMemorySize = 256M (по умолчанию 128)
Я никогда этим не пользовался. Может быть, тебе это пригодится.