Всем привет!
Была необходимость сделать оптимизацию сниппетов, напр. ДИТТО, ВЕЙФАЙНДЕР и т.д., чтобы свести к минимуму количество запросов к БД и, тем самым, снизить нагрузку на сервер и увеличить скорость работы сайта.
Наверное, каждому с такой задачей приходилось сталкиваться, особенно когда с помощью ДИТТО нужно выводить большие количества документов, в который множество ТВ и т.д.(особенно, когда вызовы сниппетов некешируемые). Не секрет, что в таком случае происходит множество запросов. Понятно, что будет при большой посещаемости сайта
Так вот. Я немного оптимизировал сниппет DITTO Wayfinder и добился удивительного результата. Например, у меня в сайте идет вывод списка документов, в каждом из которых по 10 ТВ. Идет фильтрация по 3 ТВ, вызов некешируемый. При обычных настройках количество запросов к БД составляет
38, но при использовании оптимизированного ДИТТО происходит всего
6 (шесть) запросов!!! И это при некешируемом вызове. Нетрудно подсчитать, насколько выросла происводительность
Все, что пришлось сделать - это:
1) везде в сниппетах кешировать запросы к БД. Т.е. при повторном запросе результаты берутся не из БД, а из кеша. Понятно, что при нечастом обновлении БД такой вариант очень подходит. Время кеширования регулируется.
2) Сделать проверку на модификацию информации в странице. Т.е. при запуске сайта проверяется, изменилась ли с последнего раза инфа в странице. Если изменилась, идет загрузка с сервера. Если не изменилась, то страница грузится с кеша браузера.
Кому интересно, вылаживаю модернизированные снипеты и измененный файл ИНДЕКС.ПХП. Все, что нужно сделать, так это просто распаковать содержимое архива в корень сайта поверх старых папок и файлов. (ВАЖНО: на всякий случай сначала сохраните старые версии заменяемых файлов и бекап БД).
Также планирую эту процедуру оптимизации провести со всем МОДХ + сделать возможность выбора кешировать/некешировать и время актуальности кеша.
Пожалуйста, сообщайте сюда все найденные глюки и недоработки. Итак, качаем, тестируем и высказываемся
Новая версия 3.0.3 под МОДх 1.0.4
http://letitbit.net/download/45248.49af32f3880e7f1cf3f35266ef71/MODX-cache_v3.0.3_for_Modx_1.0.4.rar.html
Версия для МОДх 1.0.0:
http://letitbit.net/download/0760.05610bde48a998fb203bd311d/MODX_cache_v3.0_for_Modx_1.0.0.zip.html