|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Параллельный коллектор развертки метки, также известный как параллельный коллектор или CMS, предназначается в приложениях, которые чувствительны к паузам сборки "мусора". Это выполняет большинство действия сборки "мусора" одновременно, то есть, в то время как потоки приложения работают, чтобы сохранить вызванные сборкой "мусора" паузы короткими. Ключевые улучшения производительности, сделанные к коллектору CMS в JDK 6, обрисовываются в общих чертах ниже. См. документы, на которые ссылаются ниже для более подробной информации об этих изменениях, коллекторе CMS, и сборке "мусора" в HotSpot.
Отметьте, что эти функции только применяются, когда коллектор CMS используется; опция -XX:+UseConcMarkSweepGC выбирает коллектор CMS.
System.gc() и Runtime.getRuntime().gc() методы дают JVM команду выполнять сборщик "мусора", чтобы переработать неиспользованные объекты. Реализация HotSpot этих методов в настоящий момент останавливает все потоки приложения, чтобы собрать всю "кучу", которая может привести к длинной паузе особенно, когда "куча" является большой. Это работает против цели коллектора CMS сохранить паузы короткими.
В JDK 6, коллектор CMS может дополнительно выполнить эти наборы одновременно, чтобы избежать длинной паузы в ответ на a System.gc() или Runtime.getRuntime().gc() вызвать. Чтобы активировать эту опцию, добавьте опцию
-XX:+ExplicitGCInvokesConcurrent
java командная строка. Несколько изменений были произведены то увеличение размер значения по умолчанию молодой генерации, когда коллектор CMS используется:
Основной эффект этих изменений состоит в том, чтобы улучшить производительность приложения, уменьшая издержки сборки "мусора". Однако, потому что значение по умолчанию, молодой размер генерации больше, приложения, может также видеть большие молодые времена паузы генерации и больший объем потребляемой памяти. В случае необходимости, пожалуйста, см. документы, на которые ссылаются ниже для большего количества деталей о поколениях, пробелах оставшегося в живых и опциях, доступных для корректировки их размеров.
Коллектор CMS теперь использует многократные потоки, чтобы выполнить параллельную задачу маркировки параллельно на платформах с многократными процессорами. Это уменьшает продолжительность параллельного цикла маркировки, позволяя коллектор поддерживать приложения с большим числом потоков и более высоких объектных уровней выделения, особенно на больших многопроцессорных машинах. Предшествующие выпуски, используемые только единственный поток для параллельной маркировки, ограничивая возможность коллектора не отставать от приложений с очень высокими объектными уровнями выделения.
HotSpot обеспечивает больше детали о коллекторе CMS и других коллекторах, доступных в HotSpot, так же как описаниях поколений, пробелов оставшегося в живых и других понятий управления памятью.
HotSpot содержит ссылки к Настраивающим Руководствам по Сборке "мусора", определенным для каждого выпуска, которые включают направляющие линии для того, чтобы выбрать сборщик "мусора", что лучшие иски Ваше приложение и методы, которые могут помочь уменьшить издержки сборки "мусора".