2012-05-19 5 views
3

Я заметил, что когда нет недавнего ParNew, а затем, если фаза CMS-Initial-Mark начинается, фаза CMS-Initial-Mark занимает больше времени, чтобы отметить объекты старого поколения ,ParNew и CMS-Initial Corelation

Хорошая часть в большинстве случаев, когда я нашел ParNew (возможно, случайно или JVM делает это внутри) происходит непосредственно перед фазой CMS-Initial-Mark, а затем для обозначения того же количества объектов в старом поколении, CMS занимает меньше времени.

Хотел бы знать причины этого наблюдения.

Примечание: Учитывая, что этап CMS-Initial-Mark является стоп-миром, следует попытаться уменьшить его продолжительность.

ответ

5

Обычно CMS начальный знак контрейлерных на юную коллекцию. CMS может ждать молодую коллекцию в течение некоторого времени (2 секунды по умолчанию). Если этого не происходит, начальная отметка будет сканировать все юное пространство с использованием одной нити, это может занять много времени.

Прочтите http://blog.ragozin.info/2011/06/understanding-gc-pauses-in-jvm-hotspots_02.html для получения более подробной информации.

Опция HotSpot -XX: CMSWaitDuration = < Задержка в ms> определяет, как долго начальная отметка CMS может быть отложена до контрейлерной молодой коллекции.

Смежные вопросы