WP File Cache: замена WP_Object_Cache с поддержкой долговременного кэширования

Увеличиваем производительность WordPress подручными методами

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

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

С проблемами быстродействия можно бороться очень радикально: генерировать и отдавать статические версии страниц (благо, плагинов хватает). Но кэширование на уровне страниц мне кажется недостаточно гибким (например, Hyper Cache убирает cookies, идентифицирующие пользователя (что логично), в результате чего при вводе комментария пользователю приходится вновь набирать свои данные; не поддерживаются динамические элементы на страницах и т.п.).

К счастью, достаточно гибок для того, чтобы позволить пользователю использовать свой собственный механизм кэширования данных вместо стандартного. Стандартный механизм кэширования реализован в классе WP_Object_Cache и позволяет кэшировать данные только на время выполнения скрипта. Это не всегда удобно, ибо многие данные не меняются в течение долгого времени (соответственно, можно экономить на запросах). К тому же некоторые запросы, которые осуществляет , не очень хороши — они нагружают , а оптимизировать их очень трудно.

Посидев немного и подумав, я написал свою собственную замену для WP_Object_Cache: называется .

Функциональность плагина:

  • поддержка долговременного (persistent) кэширования;
  • полная совместимость интерфейса с WP_Object_Cache;
  • кэширование данных в памяти для увеличения быстродействия;
  • Версия 0.2.1: реализация non-persistent caching для часто изменяющихся объектов.

пока находится в стадии тестирования, но его работа мне уже очень нравится :-)

Скачать WP File Cache 0.2.1.

Замечания по установке:

  1. Каталог /wp-content/plugins/file-cache/cache должен быть доступен на запись пользователю, под которым бегает web-сервер:
    [-]
    View Code Bash
    chmod -R 0777 wp-content/plugins/file-cache/cache
  2. При активации копирует файл object-cache.php в каталог /wp-content/. Как следствие, каталог должен быть доступен плагину на запись.
  3. Для срочной деактивации плагина можно удалить или переименовать файл /wp-content/object-cache.php. В этом случае будет использовать встроенные механизмы кэширования.

Update: ниже приведены скриншоты, демонстрирующие эффективность плагина. Для замера количества запросов и времени их выполнения использовался плагин SqlMon, о котором я писал ранее.

  1. Кэширование полностью запрещено:
    737 запросов, 3.44 секунды
  2. Стандартный :
    35 запросов, 0.09 секунды
  3. :
    10 запросов, 0.03 секунды

Свежая версия плагина, а также вопросы/комментарии находятся на странице WP File Cache: долговременное кэширование в WordPress

Добавить в закладки

Связанные записи

Автор: Vladimir; опубликовано в: Плагины WordPress; метки: MySQL, WordPress, WP File Cache, кэш, плагин, производительность
12
Июнь
2008

RSS Комментарии к статье «WP File Cache: замена WP_Object_Cache с поддержкой долговременного кэширования» (16)

  1. Появилась версия 0.2.1 плагина WP File Cache, исправляющая ошибки в реализации non-persistent caching.

  2. [...] Появилась новая версия плагина WP File Cache. [...]

  3. [...] Надо бы попробовать отечественную разработку WP File Cache c более правильной, на мой взгляд, идеологией [...]

  4. Спасибо за чудесный плагин! У меня шаблон оформления делал около 250 запросов в базу данных, причем я проверял на чистом Wordpress, тоже самое(((
    Поставил WP File Cach и сейчас 8 запросов на главной! Как я рад! =))))))))))
    Еще раз спасибо!)))

Извините, комментарии закрыты.