The XMS флаг даты от времени, прежде чем JVM было инкрементного сбора мусора, и поэтому это было выгодно держать кучу как малые, как это может быть (чтобы сохранить коллекции мусора, как короткие, как возможное). Таким образом, вы должны зарезервировать соответствующий максимальный объем памяти при запуске с флагом Xmx, но только совершите меньший кусок с помощью Xms.
Теперь у нас есть генераторные сборные сборщики мусора, часто оптимально устанавливать Xms и Xmx на одно и то же значение. Это позволяет избежать динамического выделения памяти в кучу, что требует полной сборки мусора, которая может негативно повлиять на производительность.
Если вы запускаете приложение с низким значением для Xms и включаете ведение журнала GC (-verbose: gc -Xloggc: FILENAME), файл журнала покажет, как размеры кучи и поколения меняются по мере запуска приложения и дают вам представление о том, сколько памяти потребуется вашему приложению.
Что вы подразумеваете под «большей производительностью»? –
Если бы я поставил минимум, я бы подумал, что ему не нужно всегда проверять память и выделять дополнительную память и извлекать память, когда она ей не нужна. Так как есть меньше проверок, он должен быть более результативным, поскольку выделена память (не менее мин). Дайте мне знать, если я ошибаюсь – Dusty
, если вы не указали минимальное значение кучи, будет вычисляться минимальное значение для вашей кучи на основе используемой вами версии java и машины, на которой вы ее запускаете. Поэтому не беспокойтесь об этом, если вы не увидите слишком много Full GC для своего приложения :) – Arkantos