После чтения уже задавала вопрос по этому вопросу и много прибегая к помощи я до сих пор не в состоянии иметь четкое представление о -Xms опционныхJVM параметры кучи
Мой вопрос: какая разница между java -Xms=512m -Xmx=512m
и java -Xms=64m -Xmx=512m
?
На данный момент у меня есть следующий ответ:
Единственное отличие заключается в количестве мусора коллекций, которые будут выполняться во время работы моего приложения и количества выделений памяти. Я прав ?
Вот мои причины этого ответа:
Установка опции -Xms
в 512m
не приводит к моему приложению с помощью действительно 512M
физической памяти после запуска. Я полагаю, это связано с современным управлением виртуальной памятью операционной системы и распределением ленивых страниц. (Я заметил, что установка -Xms
к 512M
или 64M
не изменяется при всех начальной используемой памяти отчётной либо сверху на Linux или менеджер задач на окнах)
Может кто-то помочь мне понять влияние этого Xms
или указать мне ссылки, которые помогут мне понять это?
Заранее спасибо
Ману
Я думаю, что настоящий синтаксис -Xms64m и не -Xms = 64m. Если я ошибаюсь, пожалуйста, откатитесь! – Burkhard
Нашел это, исследуя некоторые тонкости jvm config. Принятый ответ здесь очень отличается от моего понимания этих ценностей. Да, большинство ОС будут только делать физические страницы доступными, когда сбой небольшой страницы, когда приложение пытается получить доступ к памяти, которую он имеет malloc'ed, - но Xms указывает начальный объем памяти, malloced на jvm, - который помещает верхнюю границу на количество страниц, которые могут быть назначены * без * приложения malloc'ing больше памяти - и в случае Java это будет только malloc больше памяти (до Xmx), если недостаточная память становится доступной gc – symcbean
@symcbean Я смущен , Кажется, ваше понимание не сильно отличается от того, что находится в ответе. Вы просто используете разные слова, но описываете то же самое поведение. – Turismo