Быстрая оптимизация MODx Revo

Не буду вдаваться в тонкости оптимизации, лишь дам совет по быстрому приведению в порядок.
Кое-кто до сих пор сидит на неподдерживаемой Evo из-за того, что она работает чуть быстрее. Я же рекомендую всегда использовать новейшее ПО. Поэтому разбираем на примере MODx Revolution.

1. Выводим внизу каждой страницы в комментарии:

<!-- [^t^], [^q^], [^qt^] -->


Что означает:
[^t^] — время, затраченное на генерирование страницы
[^q^] — количество запросов к базе данных
[^qt^] — время, затраченное на запросы к базе данных

modx_revo_speed_optimization

Гугл внимательно следит за скоростью загрузки сайта.

На одном из проектов красовались безрадостные «цифры»:

<!-- 0,250, 62, 0,0038 -->

Особенно поразило значение 62, означающее количество запросов к базе данных. Даже в особо сложных случаях их должно быть как минимум втрое меньше.

Ну, собственно, начнем оптимизацию.

2. Убираем по максимуму все некешируемые чанки.
Из конструкций вида [[!chunk]] нужно убрать восклицательные знаки. Оставляем: сниппеты форм, регистрации и getPages.
Эфект роста производительности особенно заметен при включении кэширования главного и дополнительных меню.

3. Настраиваем минимальную вложенность чанков и сниппетов.
Вывод

<title>[[*pagetitle]]</title>

должен выводиться в шаблоне, а не в чанке head.
То же самое проделываем с тегами, которые задаются в плейсхолдерах, например description и keywords.

4. Лишние чанки и сниппеты не нужны.
Каждый дополнительный вызов замедляет работу MODx.

Проделав вышеуказанные манипуляции, смотрим на нашу статистику в исходном коде:

<!-- 0,052, 2, 0,0001 -->

Отличный результат! Запросов к б/д после генерации кэша всего 1-2, скорость генерации выросла в 5 раз. Количество запросов уменьшено на 60! Теперь сайт шустро грузится и не вызывает лишнего ожидания.

modx_revo_clean_speed

Чистый MODx — максимальная производительность.

Итак мы ускорили свой MODx Revo. У вас может возникнуть вопрос: есть ли к чему стремиться? — Конечно, ведь чистый MODx без шаблонов на локальном сервере загружается за 15 мс. Собственно это и есть максимальная скорость.

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

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

Добавить комментарий