Cms основные: Types of CMS content management systems: article from ElbuzGroup

Виды, функции и задачи разных CMS

  • Блог
  • SEO

5 мая 2021

Система управления контентом, или Content Management System (CMS) — это специальное программное обеспечение, которое необходимо для работы с содержимым сайта. С ее помощью можно создавать, редактировать и организовывать бесперебойную работу веб-страниц. А поскольку многие сферы бизнеса и торговли уже давно полностью перекочевали в Интернет, удобство работы с сайтом зависит от стабильности ресурса и продуманной навигации по сайту. Для этого и были созданы основные виды CMS.

Любая система управления контентом состоит из нескольких основных частей:

  • хранилище баз данных, где размещаются сведения о пользователях сайта;
  • хранилище элементов интерфейса, с которыми взаимодействует каждый пользователь ресурса;
  • визуальный редактор, с помощью которого создаются новые страницы и редактируются уже существующие.

Обратите внимание! В зависимости от ваших целей и задач, CMS может комплектоваться различными дополнительными модулями с необходимым функционалом.,

Основные функции системы управления контентом

  1. Создание контента. Данный инструмент позволяет унифицировать и упростить процесс создания нового контента.
  2. Управление содержимым. Создание контента — это лишь полдела. Важно уметь им управлять: ограничивать доступ к панели администрирования, редактировать уже размещенную информацию и выполнять другие операции.
  3. Публикация. Одно из больших преимуществ размещения контента — его полная адаптация к дизайну и стилю всего остального сайта.
  4. Представление. Настройками предусмотрены изменения расположения иконок и цветовой палитры блоков, а также внесения различных других изменений, которые вы посчитаете нужными.

Преимущества использования CMS

Как вы уже поняли, наличие системы управления контентом полностью оправдано, ведь она помогает решать и автоматизировать многие процессы работы с контентом. В связи с этим выделяют 5 основных плюсов применения Bitrix, Drupal, WordPress и других видов CMS:

  • Удобство. Все нужные инструменты сосредоточены в одном месте, а управлять большинством CMS достаточно легко даже без опыта.
  • Безопасность и надежность работы. Система имеет базовую защиту от вирусов и хакерских атак, кроме того, предусмотрен откат настроек при возникновении критических ошибок. Также в системе существуют различные уровни доступа: вы можете ограничить права управления контентом, чтобы администраторы ресурса могли вносить коррективы только в свой раздел сайта, например, блог, новостная лента и т.д.
  • Экономия средств. Вам не придется нанимать в штат дополнительных специалистов или прибегать к помощи программистов.
  • Максимальная функциональность. Разработчики CMS стараются предусмотреть каждую мелочь, чтобы вы могли менять ваш веб-ресурс так, как вам нужно.
  • Привлекательный внешний вид. Дизайн сайта играет немаловажную роль во взаимодействии с пользователями, поэтому вы сможете настроить его внешний вид в соответствии с эстетическими предпочтениями и фирменным стилем компании.

Основные виды систем управления контентом

 

Название

НазначениеПреимущества

Недостатки

1С-БитриксПодходит для реализации крупных маркетинговых проектов: интернет-магазинов, новостных порталов, библиотек и др.
  1. Неограниченная масштабируемость. Позволяет начать с небольшого сайта и закончить порталом со сложной и разветвленной структурой.
  2. Многопортальность. С помощью одной системы можно осуществлять управление сразу несколькими ресурсами.
  3. Простота использования. Сотрудник может вносить правки не только в визуальное содержимое, но и при необходимости работать с кодом сайта.
  4. Специальный каталог «1С-Битрикс: Markeplace». Его наличие существенно расширяет маркетинговые возможности сайта и в то же время упрощает работу с ним.
  1. Достаточно сложная система, которую не применяют для решения простых задач.
  2. Ограниченные возможности визуального редактора.
WordPressДанная CMS отлично подходит для создания блогов и новостных порталов.
  1. Универсальность. WordPress подходит для каких угодно целей и задач благодаря огромному количеству разнообразных плагинов.
  2. Простота. На освоение админки системы уйдет около часа, даже если вы не обладаете опытом обращения с CMS.
  3. Постоянные обновления. Команда разработчиков развивает свою платформу и вносит изменения, полезные для ее пользователей.
  1. Высокая вероятность взлома. WordPress является одной из самых популярных систем, а потому чаще всего подвергается хакерским атакам.
  2. Снижение производительности со временем. Эта проблема может возникать из-за большого количества плагинов.
JoomlaПодходит для создания лендингов и других сайтов, которые не отличаются особой сложностью и объемностью.  
  1. Простота в обращении. Подходит для начинающих сайтостроителей и веб-мастеров.
  2. Простота установки. Многие владельцы хостингов даже предлагают специальные тарифы, созданные для работы с CMS.
  1. Высокий процент взломанных сайтов. Так же, как с WordPress, популярность системы может привести к угрозе для ваших данных.
  2. Проблемы после обновлений. Несовместимость версий движка и плагинов может привести к сбоям и ошибкам.
DrupalЧаще всего применяется в корпоративной сфере, поскольку является профессиональным ПО. 
  1. Открытый исходный код и структура. Это позволяет упростить первоначальную настройку ресурса.
  2. Встроенная система кэширования. Она обеспечивает ускорение загрузки страниц.
  3. Большое разнообразие инструментов и простота их использования. Drupal поддерживает расширение функционала и кастомизацию.  
  1. Сложность для начинающих веб-мастеров.
  2. Сложная система работы с модулями, для которой нередко требуется установка дополнений
  3. Мощный хостинг для обеспечения достаточной скорости загрузки страниц..
TildaНа базе системы Tilda можно быстро создать яркий сайт-визитку, корпоративный веб-ресурс, лендинг и т.д.
  1. Выбор из готовых шаблонов. Вам не нужно создавать сайт с нуля — в базе уже есть множество вариантов оформления веб-ресурсов.
  2. Адаптация под ваши задачи. Сайты, созданные на основе Tilda, используют технологии для ускорения загрузки страниц и сжатия изображений.
  3. Интеграция со сторонними сервисами. Сайты могут взаимодействовать с социальными сетями, платежными системами, агрегаторами и т.д.
  1. Высокая стоимость. Даже при покупке самого дорогого тарифа вы получаете возможность создания только 5 сайтов.
  2. Однотипность шаблонов. Многие создают сайты с использованием данной платформы, поэтому наметанный взгляд сразу отличит их от созданных с нуля.
OpenCartСистема предназначена для создания на ее основе интернет-магазинов. Она заточена под работу с электронной коммерцией.
  1. Все необходимое для организации продаж. Является лучшим инструментом для создания работающего интернет-магазином с организацией отгрузок, онлайн-продаж и т.д.
  2. Собственная система аналитики. При использовании OpenCart достаточно легко отслеживать статистику продаж.
  3. Интеграция с системами оплаты. OpenCart поддерживает прием платежей прямо через сайт. 
  1. Создание дублей страниц. Один и тот же раздел сайта может быть доступен по разным ссылкам, из-за чего могут возникать отказы.
  2. Проблемы с выгрузкой товаров. Большинство плагинов загружают новые товарные позиции в базу данных MySQL, часто заменяя уже имеющуюся там информацию.

+375 (29) 766-34-33

или

Оставить заявку

Понравилась статья? Поделись с друзьями

на что обратить внимание​ — Сервисы на vc.ru

Создать веб-сайт с нуля трудно, ведь для этого нужно знать HTML-код. Чтобы решить эту проблему были созданы специальные движки, которые значительно облегчают создание и управление ресурсом. А называются они Content Management System, или просто CMS.

523
просмотров

Для продвижения своей компании нужно, чтобы целевая аудитория (ЦА) знала о вашем проекте, будь это интернет-магазин или простой веб-сайт. Для этого лучше всего подойдет страница в интернете. Но для начала ее нужно создать. В этом сможет помочь Content Management System. Если перевести на русский язык, то получится: «система управления контентом». Но создать интернет проект с нуля, не имея знаний очень сложно. Сайт-визитку может создать любой среднестатистический пользователь интернет. Но что делать если нужен корпоративный сайт, онлайн – магазин или серьезный блог? Можно обратится в компанию по веб разработке и дизайну сайтов. Но даже в этом случае необходимо иметь базовые представление об управлении контентом. В этой статье мы разберем что же такое CMS.

Что такое CMS?

Вообще, Content Management System – это программное обеспечение, основанное на базе скриптов. Оно позволяет с легкостью управлять, менять и контролировать содержимое вашего сайта. Последние системы обладают широким спектром возможностей. Поэтому каждый человек сможет подобрать систему управления веб-сайтом под свои нужды.

Самые популярные CMS

На 2019 год самой популярной системой разработки сайта и его управлением является WordPress. Именно ей пользуется более 50% всех людей, которые управляют своими проектами через CMS. Причем WordPress лидирует с большим отрывом. Ближайший конкурент – Joomla – распространен только на 9%. Далее по популярности идут: Drupal, vBulletin, Typo3. Все они различаются своими возможностями, интерфейсом, ценами и так далее. Рекомендуется начать с WordPress, и если не понравиться, то только после этого переходить к другим.

Основные принципы работы. Преимущество и недостатки

Как уже было сказано выше, Content Management System была создана для упрощенного создания, а затем и управления сайтом. Условно эту систему можно разделить на два хранилища информации. В состав первого поступают базы данных с контентом для сайта. А во второй компоненты визуализации, которые демонстрируют посетителям. Для удобства работы с данными, размещенными на странице, большинство движков CMS оснащены редакторами HTML-кода. Эти редакторы помогают человеку создать код из упрощенной разметки. Это позволяет обычным пользователям с легкостью форматировать текст без особых знаний HTML-кода.

Из всей этой информации можно вывести основные плюсы и минусы. Так, к преимуществам относится:

  • требуются только самые базовые знания в области программирования;
  • позволяет создавать сайты гораздо быстрее;
  • удобно управлять и видоизменять интернет-страницы;
  • можно быстро и легко сделать яркий и привлекательный веб-дизайн.

И всего один, но жирный минус. Используя это ПО, довольно трудно создать уникальную страницу с необычным функционалом. Ведь CMS основана на шаблонах.

Практическое применение

Как уже говорилось выше, Content Management System нужно применять, если необходимо создать веб-сайт и управлять им без специальных знаний в области программирования. Также система управления контента отлично подойдет для графического оформления страницы. Правда, придется постараться, чтобы освоить любую CMS, даже самую простую. Платная или бесплатная система управления контентом. Что выбрать? Из предыдущего тезиса понятно, сто существует, как бесплатное, так и платное программное обеспечение. Если вы можете без вреда для проекта использовать бесплатный движок, то лучше применять его. В противном случае придется раскошелиться на подходящую Content Management System.

Как выбрать функциональный движок?

Выбирать нужно только исходя из своих потребностей. Не стоит забывать, что каждая отдельная система управления контентом сильно отличается от других и способна реализовать те идеи, которые другие не способны. Например:

  • WordPress изначально создавался для блогов, но сейчас он более разнообразен;
  • Joomla бесплатна и проста в использовании, она отлично подойдет для простенького сайта;
  • vBulletin часто используют для создания форума;
  • Drupal универсальная система, но в ней довольно трудно разобраться, лучше использовать для «тяжелых проектов».

Кроме способности реализовать тот или иной проект стоит учитывать и другие способности программного обеспечения. Например, удобство редактора, кастомизацию, производительность, SEO-возможности, русификацию (для тех, кто плохо знает английский).

Выводы

Правильно подобранная система управления контентом позволит сделать качественный сайт с привлекательным дизайном. Это поможет привлечь новых посетителей и даже будущих клиентов. Причем построить страницу, используя Content Management System, достаточно легко и быстро. Выбирать лучше бесплатное ПО, а покупать только тогда, когда бесплатные CMS не способны реализовать задуманное.

CMS :: Связанные

Главный
Скриншоты
Отзывы
Делать вклад
Связанные


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

Связанные проекты

Нам известно о следующих проектах, связанных с CMS. Эти
проекты не разрабатываются и не поддерживаются нами, поэтому мы не даем
гарантии или поддержку для них.

Вилки

  • Вилка, по
    Уильям Ди Луиджи и Лука Версари, добавив некоторые социальные функции в
    CMS (например, форум), и используется итальянскими олимпиадами.
  • Вилка Масаки Хара,
    который поддерживает внешних провайдеров входа в систему (например,
    Facebook и Twitter), и используется на японских олимпиадах.

Коммунальные услуги

  • CC,
    графическое приложение для Linux или Windows, разработанное Kiên
    Nguyễn Tien Trung, которые упрощают преобразование конкурса в
    в
    итальянский
    формат и, следовательно, импортировать его в CMS. Источники
    здесь.
  • Поддерживать
    шрифты, используемые в Университете Тренто, в частности
    сценарии запуска для Upstart и systemd, автор Cristian Consonni.

Учебник

  • Видео
    учебник по установке и запуску CMS, автор Марко Романьоли.

Другие потенциально полезные патчи для CMS можно найти в
запросы на вытягивание
список и среди
множество форков GitHub
CMS. Многие из них рассматриваются на предмет включения в
официальный репозиторий CMS.

Отчеты о CMS

CMS используется во многих национальных и международных конкурсах. Немного
организаторы конкурса написали подробные отчеты о своем опыте работы с
CMS, которая может быть полезна для других организаторов соревнований, использующих или рассматривающих
использовать CMS. В частности, многие из них обсуждают проблемы
адрес для использования CMS с несколькими сотнями пользователей.

  • Отчет
    1 этапа LMIO 2015 (Литовская олимпиада по информатике)
    написано Мотеюсом Якштисом в ноябре 2014 года.
    отчет
    по результатам тестовой сессии (октябрь 2014 г.).
    конкурс насчитывал 754 участника, 6222 заявки и проводился на
    Облако Amazon Web Services.
  • Отчет
    на АПИО 2014 (Азиатско-Тихоокеанская международная олимпиада), автор
    Артем Игликов в мае 2014 года. В конкурсе приняло участие около 600 человек.
    участников, около 7500 представлений и частично
    локальное оборудование и частично в облаке Amazon Web Services.
  • Отчет
    на IOI 2013 (Брисбен, Австралия) по сценарию Бернарда Блэкхэма
    в июле 2013 года. В конкурсе приняли участие 303 человека, и он проводился
    местное оборудование. В докладе также рассматриваются проблемы, поставленные
    путем управления и мониторинга физической инфраструктуры.

Документы по CMS

CMS описана в следующих документах ядром CMS
Разработчики. Они могут быть полезны для тех, кто хочет поймать с высоты птичьего полета
обзор внутренней структуры CMS.

  • Стефано Маджоло, Джованни Масчеллани, Лука Верштедт. ЦМС: а
    система оценки роста
    . Олимпиады в
    Информатика 8 (2014),
    123–131. Полный
    текст.
  • Стефано Маджоло, Джованни Масчеллани. Представляем CMS: A
    Система управления конкурсом
    . Олимпиады в
    Информатика 6 (2012),
    86–99. Полный
    текст.

Concurrent Mark Sweep (CMS) Collector

Платформа Java, стандартная версия HotSpot Virtual Machine Garbage Collection Руководство по настройке
Содержание
Предыдущий
Next

Сборщик Concurrent Mark Sweep (CMS) предназначен для приложений, предпочитающих более короткие паузы при сборке мусора и которые могут позволить совместно использовать ресурсы процессора со сборщиком мусора во время работы приложения. Как правило, приложения, которые имеют относительно большой набор долгоживущих данных (большое постоянное поколение) и работают на машинах с двумя или более процессорами, как правило, выигрывают от использования этого сборщика. Тем не менее, этот коллектор следует рассматривать для любого приложения с низкими требованиями к времени паузы. Сборщик CMS включается с помощью параметра командной строки 9.0081 -XX:+UseConcMarkSweepGC .

Подобно другим доступным сборщикам, сборщик CMS относится к поколениям; таким образом, встречаются как второстепенные, так и крупные коллекции. Сборщик CMS пытается сократить время пауз из-за крупных сборок, используя отдельные потоки сборщика мусора для отслеживания доступных объектов одновременно с выполнением потоков приложения. Во время каждого основного цикла сбора сборщик CMS приостанавливает все потоки приложений на короткий период в начале сбора и снова ближе к середине сбора. Вторая пауза, как правило, более длинная из двух пауз. Несколько потоков используются для выполнения работы по сбору во время обеих пауз. Остальная часть сбора (включая большую часть трассировки активных объектов и очистки недоступных объектов выполняется с помощью одного или нескольких потоков сборщика мусора, которые выполняются одновременно с приложением. Второстепенные сборы могут чередоваться с текущим основным циклом и выполняются в аналогично параллельному сборщику (в частности, потоки приложения останавливаются во время второстепенных сборов).0003

Сбой параллельного режима

Сборщик CMS использует один или несколько потоков сборщика мусора, которые выполняются одновременно с потоками приложения, с целью завершения сбора постоянного поколения до того, как он заполнится. Как описано выше, при нормальной работе сборщик CMS выполняет большую часть своей работы по отслеживанию и очистке, когда потоки приложений все еще работают, поэтому потоки приложений видят только короткие паузы. Однако, если сборщик CMS не может завершить освобождение недоступных объектов до того, как заполнится постоянное поколение, или если выделение не может быть удовлетворено доступными блоками свободного пространства в постоянном поколении, тогда приложение приостанавливается, и сбор завершается с все потоки приложений остановлены. Невозможность собрать коллекцию одновременно называется сбой параллельного режима и указывает на необходимость корректировки параметров коллектора CMS. Если параллельная сборка прерывается явной сборкой мусора ( System.gc() ) или сборкой мусора, необходимой для предоставления информации для диагностических инструментов, сообщается о прерывании параллельного режима.

Слишком много времени GC и OutOfMemoryError

Сборщик CMS выдает ошибку OutOfMemoryError , если на сборку мусора тратится слишком много времени: если больше 98% всего времени тратится на сборку мусора и восстанавливается менее 2% кучи, после чего выдается ошибка OutOfMemoryError . Эта функция предназначена для предотвращения работы приложений в течение длительного периода времени с небольшим прогрессом или без него из-за слишком малого размера кучи. При необходимости эту функцию можно отключить, добавив в командную строку параметр -XX:-UseGCOverheadLimit .

Политика такая же, как и в параллельном сборщике, за исключением того, что время, затраченное на выполнение одновременных сборов, не засчитывается в счет 98% лимит времени. Другими словами, только сборы, выполненные, когда приложение остановлено, учитываются как чрезмерное время сборки мусора. Такие коллекции обычно возникают из-за сбоя параллельного режима или явного запроса на сбор (например, вызов System.gc ).

Плавающий мусор

Сборщик CMS, как и все другие сборщики в Java HotSpot VM, является сборщиком трассировки, который идентифицирует как минимум все доступные объекты в куче. Говоря языком Ричарда Джонса и Рафаэля Д. Линса в их публикации Сборка мусора: алгоритмы автоматической динамической памяти , это сборщик добавочных обновлений. Поскольку потоки приложения и поток сборщика мусора выполняются одновременно во время основной сборки, объекты, которые отслеживаются потоком сборщика мусора, впоследствии могут стать недоступными к моменту завершения процесса сборки. Такие недоступные объекты, которые еще не были утилизированы, называются плавающим мусором. Количество плавающего мусора зависит от продолжительности параллельного цикла сбора и от частоты обновления ссылок, также известной как мутаций , по заявке. Кроме того, поскольку молодое поколение и постоянное поколение собираются независимо друг от друга, каждое служит источником корней для другого. В качестве приблизительного ориентира попробуйте увеличить размер постоянного поколения на 20%, чтобы учесть плавающий мусор. Плавающий мусор в куче в конце одного цикла параллельной сборки собирается во время следующего цикла сборки.

Пауза

Сборщик CMS дважды приостанавливает приложение во время параллельного цикла сбора. Первая пауза заключается в том, чтобы пометить как активные объекты, достижимые непосредственно из корней (например, ссылки на объекты из стеков и регистров потоков приложений, статические объекты и т. д.) и из других мест в куче (например, молодое поколение). Эта первая пауза называется начальная метка пауза . Вторая пауза наступает в конце фазы параллельной трассировки и находит объекты, которые были пропущены параллельной трассировкой из-за обновления ссылок в объекте потоками приложения после того, как сборщик CMS завершил трассировку этого объекта. Эта вторая пауза называется паузой примечания .

Параллельные фазы

Параллельная трассировка графа достижимых объектов происходит между начальной паузой метки и паузой примечания. Во время этой параллельной фазы трассировки один или несколько параллельных потоков сборщика мусора могут использовать ресурсы процессора, которые в противном случае были бы доступны приложению. В результате приложения, привязанные к вычислительным ресурсам, могут столкнуться с соразмерным падением пропускной способности приложения во время этой и других параллельных фаз, даже если потоки приложения не приостановлены. После паузы для замечаний на параллельной фазе очистки собираются объекты, идентифицированные как недоступные. После завершения цикла сбора сборщик CMS ожидает, почти не потребляя вычислительных ресурсов, до начала следующего основного цикла сбора.

Запуск параллельного цикла сбора данных

При использовании последовательного сборщика основной сбор данных происходит всякий раз, когда постоянное создание становится полным и все потоки приложения останавливаются на время сбора данных. Напротив, запуск параллельной коллекции должен быть рассчитан так, чтобы коллекция могла завершиться до того, как постоянное поколение станет полным; в противном случае приложение будет наблюдать более длительные паузы из-за сбоя в параллельном режиме. Существует несколько способов начать параллельный сбор.

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

Параллельный сбор также начинается, если занятость постоянного поколения превышает первоначальную занятость (процент от постоянного поколения). Значение по умолчанию для этого начального порога занятости составляет приблизительно 9.2%, но значение может меняться от выпуска к выпуску. Это значение можно настроить вручную с помощью параметра командной строки -XX:CMSInitiatingOccupancyFraction= , где — целое число в процентах (от 0 до 100) от размера постоянного поколения.

Пауза планирования

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

Инкрементный режим

Обратите внимание, что инкрементный режим устарел в Java SE 8 и может быть удален в будущем основном выпуске.

Коллектор CMS можно использовать в режиме, в котором одновременные фазы выполняются постепенно. Напомним, что во время параллельной фазы поток сборщика мусора использует один или несколько процессоров. Инкрементный режим предназначен для уменьшения влияния длинных одновременных фаз за счет периодической остановки параллельной фазы, чтобы вернуть процессор приложению. Этот режим, обозначенный здесь как i-cms делит работу, одновременно выполняемую сборщиком, на небольшие отрезки времени, запланированные между сборами молодого поколения. Эта функция полезна, когда приложения, которым требуется малое время паузы, обеспечиваемое сборщиком CMS, выполняются на компьютерах с небольшим количеством процессоров (например, 1 или 2).

Параллельный цикл сбора обычно включает следующие этапы:

  • Остановить все потоки приложения, определить набор объектов, доступных из корней, а затем возобновить все потоки приложения.

  • Одновременно отслеживать доступный граф объектов, используя один или несколько процессоров, пока выполняются потоки приложения.

  • Одновременно отследить разделы графа объектов, которые были изменены с момента трассировки на предыдущем шаге, используя один процессор.

  • Остановить все потоки приложения и восстановить разделы корней и графа объектов, которые могли быть изменены с момента их последнего просмотра, а затем возобновить все потоки приложения.

  • Одновременно подметать недоступные объекты в свободные списки, используемые для распределения, используя один процессор.

  • Одновременно изменить размер кучи и подготовить вспомогательные структуры данных для следующего цикла сбора, используя один процессор.

Обычно сборщик CMS использует один или несколько процессоров на протяжении всего этапа параллельной трассировки, не отказываясь от них добровольно. Точно так же один процессор используется для всей параллельной фазы развертки, опять же, не освобождая его. Эти накладные расходы могут быть слишком серьезными для приложений с ограничениями по времени отклика, которые в противном случае могли бы использовать вычислительные ядра, особенно при работе в системах с одним или двумя процессорами. Инкрементный режим решает эту проблему, разбивая параллельные фазы на короткие всплески активности, которые запланированы на полпути между небольшими паузами.

Режим i-cms использует рабочий цикл для управления объемом работы, которую сборщику CMS разрешено выполнять, прежде чем добровольно отказаться от процессора. Рабочий цикл — это процент времени между коллекциями молодого поколения, который разрешено запускать сборщику CMS. Режим i-cms может автоматически вычислять рабочий цикл на основе поведения приложения (рекомендуемый метод, известный как автоматическое определение темпа ), или рабочий цикл может быть установлен на фиксированное значение в командной строке.

Параметры командной строки

Таблица 8-1, «Параметры командной строки для i-cms» содержит список параметров командной строки, управляющих режимом i-cms. В разделе «Рекомендуемые параметры» предлагается начальный набор параметров.

Табл. 8-1 Параметры командной строки для i-cms

Опция Описание Значение по умолчанию, Java SE 5 и более ранние версии Значение по умолчанию, Java SE 6 и более поздние версии

-XX:+CMSIncrementalMode

Включает добавочный режим. Обратите внимание, что сборщик CMS также должен быть включен (с -XX:+UseConcMarkSweepGC ), чтобы эта опция работала.

отключен

отключен

-XX:+CMSIncrementalPacing

Включает автоматическую стимуляцию. Рабочий цикл инкрементного режима автоматически настраивается на основе статистики, собранной во время работы JVM.

отключен

отключен

-XX:CMSIncrementalDutyCycle=

Процент (от 0 до 100) времени между второстепенными сборами, в течение которого сборщику CMS разрешено запускать. Если CMSIncrementalPacing включен, то это просто начальное значение.

50

10

-XX:CMSIncrementalDutyCycleMin=

Процент (от 0 до 100), который является нижней границей рабочего цикла, когда CMSIncrementalPacing включен.

10

0

-XX:CMSIncrementalSafetyFactor=

Процент (от 0 до 100), используемый для добавления консерватизма при вычислении рабочего цикла

10

10

-XX:CMSIncrementalOffset= <Н>

Процент (от 0 до 100), на который рабочий цикл инкрементного режима смещается вправо в период между второстепенными сборами.

0

0

-XX:CMSExpAvgFactor=

Процентное значение (от 0 до 100), используемое для взвешивания текущей выборки при вычислении экспоненциальных средних для статистики коллекции CMS.

25

25

Рекомендуемые параметры

Чтобы использовать i-cms в Java SE 8, используйте следующие параметры командной строки:

-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode \
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps
 

Первые два параметра включают сборщик CMS и i-cms соответственно. Последние два параметра не обязательны; они просто вызывают запись диагностической информации о сборке мусора в стандартный вывод, чтобы поведение сборки мусора можно было увидеть и позже проанализировать.

Для Java SE 5 и более ранних версий Oracle рекомендует использовать следующий набор параметров командной строки для i-cms:

-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode \
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps \
-XX:+CMSIncrementalPacing -XX:CMSIncrementalDutyCycleMin=0
-XX:CMSIncrementalDutyCycle=10
 

Те же значения рекомендуются для JavaSE8, хотя значения для трех параметров, управляющих автоматическим шагом i-cms, стали значениями по умолчанию в JavaSE6.

Устранение основных неполадок

Функция автоматической синхронизации i-cms использует статистику, собранную во время работы программы, для расчета рабочего цикла, чтобы параллельные сборы данных завершались до того, как куча заполнится. Однако прошлое поведение не является идеальным предсказателем будущего поведения, и оценки не всегда могут быть достаточно точными, чтобы предотвратить переполнение кучи. Если происходит слишком много полных коллекций, попробуйте по очереди выполнить шаги, описанные в Табл.

Табл. 8-2 Поиск и устранение неисправностей функции автоматической стимуляции i-cms

Шаг Опции

1. Увеличьте коэффициент безопасности.

-XX:CMSIncrementalSafetyFactor=

2. Увеличьте минимальный рабочий цикл.

-XX:CMSIncrementalDutyCycleMin= <Н>

3. Отключите автоматическую стимуляцию и используйте фиксированный рабочий цикл.

-XX:-CMSIncrementalPacing -XX:CMSIncrementalDutyCycle=

Измерения

Пример 8-1, «Вывод из CMS Collector» — это выходные данные из CMS Collector с параметрами -verbose:gc и -XX:+PrintGCDetails , с несколькими удаленными деталями. Обратите внимание, что выходные данные сборщика CMS чередуются с выходными данными второстепенных коллекций; обычно много второстепенных сборов происходит во время параллельного цикла сбора. CMS-initial-mark указывает на начало параллельного цикла сбора, CMS-concurrent-mark указывает на конец параллельной фазы маркировки, а CMS-concurrent-sweep отмечает конец параллельной фазы очистки. Ранее не обсуждалась фаза предварительной очистки, обозначенная CMS-concurrent-preclean. Предварительная очистка представляет собой работу, которую можно выполнять одновременно с подготовкой к этапу замечаний CMS-remark. Заключительный этап обозначается CMS-concurrent-reset и находится в процессе подготовки к следующему параллельному сбору.

Пример 8-1 Вывод из CMS Collector

[GC [1 CMS-начальная метка: 13991K(20288K)] 14103K(22400K), 0,0023781 с]
[GC [DefNew: 2112K->64K(2112K), 0,0837052 с] 16103K->15476K(22400K), 0,0838519 с]
...
[GC [DefNew: 2077K->63K(2112K), 0,0126205 с] 17552K->15855K(22400K), 0,0127482 с]
[одновременная оценка CMS: 0,267/0,374 с]
[GC [DefNew: 2111K->64K(2112K), 0,0190851 с] 17903K->16154K(22400K), 0,0191903 с]
[CMS-concurrent-preclean: 0,044/0,064 с]
[GC [1 CMS-замечание: 16090K(20288K)] 17242K(22400K), 0,0210460 с]
[GC [DefNew: 2112K->63K(2112K), 0,0716116 с] 18177K->17382K(22400K), 0,0718204 с]
[GC [DefNew: 2111K->63K(2112K), 0,0830392 с] 19363K->18757K(22400K), 0,0832943 с]
...
[GC [DefNew: 2111K->0K(2112K), 0,0035190 с] 17527K->15479K(22400K), 0,0036052 с]
[CMS-concurrent-sweep: 0,291/0,662 с]
[GC [DefNew: 2048K->0K(2112K), 0,0013347 с] 17527K->15479K(27912K), 0,0014231 с]
[одновременный сброс CMS: 0,016/0,016 с]
[GC [DefNew: 2048K->1K(2112K), 0,0013936 сек] 17527K->15479K(27912K), 0,0014814 сек
]
 

Начальная пауза для маркировки обычно короткая по сравнению со временем второстепенной паузы для сбора данных.