Java-приложение, которое использует много памяти.Использовать -Xmx?

StackOverflow https://stackoverflow.com/questions/1030256

Вопрос

У меня есть java-приложение, которое использует около 15G на машине с 16G.Я не знаю, следует ли мне устанавливать максимальный размер кучи.

Если установлено, будет ли jvm потреблять всю оперативную память до предела, а затем начнет сбор мусора и остановит все, пока она обрабатывает 15G объектов кучи?

Если нет, то не повредит ли jvm производительности, не используя всю доступную оперативную память на компьютере.

Моя конкретная виртуальная машина - это:64-разрядная серверная виртуальная машина Java HotSpot (TM) (сборка 1.6.0_03-b05, смешанный режим).

Спасибо

Это было полезно?

Решение

-Xmx15G установит максимальный размер кучи равным 15 гигабайтам.Java будет выделять только то, что ей нужно по мере ее запуска.Если вы не установите его, он будет использовать только значение по умолчанию.Для получения информации о значении по умолчанию см. этот пост.

-Xms15G устанавливает минимальную кучу равной 15 гигабайтам.Это вынуждает java выделять 15 гигабайт пространства кучи перед началом выполнения, независимо от того, нужно ей это или нет.

Обычно вы можете присвоить им обоим соответствующие значения в зависимости от того, как вы настраиваете JVM.

Другие советы

В Java 6 максимальный размер кучи по умолчанию определяется объемом имеющейся системной памяти.

В соответствии с Эргономика Мусоросборника страница, максимальный размер кучи равен:

Меньше 1/4 от физического объем памяти или 1 ГБ.До J2SE 5.0 максимальный размер кучи по умолчанию составлял 64 МБ.

Используя -Xmx переключатель можно использовать для изменения максимального размера кучи.Смотрите на java - программа запуска приложений Java документация для получения подробной информации об использовании.

Если вы не задаете максимальный размер кучи (с -Xmx), разве максимум по умолчанию не составляет всего 64 МБ?

Так не приведет ли ваше приложение к сбою с OutOfMemoryErrors, если вы его не установите?Я в замешательстве по этому вопросу.Как ваше приложение может работать без этого переключателя?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top