SJ Object Cache: еще более быстрое объектное кэширование для WordPress

После года тестирования наконец-то вышла первая стабильная версия плагина .

 — альтернатива плагину , поддерживающая , , , Zend Disk Cache и Zend Shared Memory Cache.
В отличие от , ориентирован на VPS/VDS и выделенные сервера.
Далее »

Автор: Vladimir, опубликовано в: Плагины WordPress, комментариев: 24
8
Март
2010

WP File Cache 1.2.1

Я нарушил своё обещание и написал новую версию плагина  — 1.2.1. Но эта версия будет последней (скорее всего). Далее »

Автор: Vladimir, опубликовано в: Плагины WordPress, комментариев: 33
14
Янв
2010

WP File Cache 1.1

Тихо и незаметно вышел  1.1. В плагине исправлена серьёзная плавающая ошибка в методе FileCache::get(). Всем тем, кто использует данный , очень рекомендую обновиться.

Скачать плагин WP File Cache 1.1 Далее »

Автор: Vladimir, опубликовано в: Плагины WordPress, комментариев: 70
19
Дек
2009

WP File Cache 1.0

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

В данной версии у плагина появился интерфейс для администратора и, как следствие, возможность “тонкой настройки”.

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

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

Особенности плагина:

  • возможность отключения кэширования (в том числе и встроенного в );
  • возможность отключения межсессионного кэширования;
  • возможность задания групп, не подлежащих межсессионному кэшированию (полезно только разработчикам, которые знают, о чём идёт речь);
  • хранит свои настройки непосредственно в коде (в файле wp-content/object-cache.php). Это связано с проблемой курицы и яйца, а также с архитектурными особенностями WordPress.

существует в двух локализациях: русской и английской. Если у Вас есть желание перевести на другой язык, пишите.

Замечания по установке: после активации для хранения кэша будет использовать каталог wp-content/plugins/file-cache/cache. Поэтому перед активацией каталог должен быть доступен на запись. Каталог для хранения кэша можно изменить в настройках (для увеличения производительности имеет смысл размещать на RAM-диске); каталог также должен быть доступен на запись. Плагину при активации/сохранении настроек должен быть доступен на запись каталог wp-content: в него копируется файл object-cache.php. После того, как активирован и сконфигурирован, права на запись можно убрать.

По производительности бьет как «голый» WordPress 2.7rc1, так и , «нагруженный» плагинами. Причем выигрыш в производительности становится всё более заметным при увеличении нагрузки на сайт (когда обмен данными с MySQL становится всё более интенсивным).

скоро появится на .org (да, у меня наконец-то дошли руки), и его можно будет скачивать прямо оттуда :-) Как следствие, у плагина появилась домашняя страница.

Скачать последнюю версию плагина WP File Cache.

Большое спасибо Максиму Покровскому за тестирование плагина под Windows.

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

Автор: Vladimir, опубликовано в: Плагины WordPress, комментариев: 24
2
Дек
2008

WP File Cache: долговременное кэширование в WordPress

Как известно, поддерживает два вида кэширования:

  1. Кэширование на уровне страниц;
  2. Кэширование на уровне запросов.

Кэширование на уровне страниц поддерживает, но самостоятельно не реализует, вследствие чего приходится использовать сторонние плагины (Hyper Cache, WP Super Cache и т.д.). При всех достоинствах постраничного кэширования, у него есть несколько недостатков, а именно:

  • невозможность использования динамических элементов (например, captcha, работающая по методу «изящного отсеивания спама») или виджетов, генерирующих динамический контент (например, quote of the day);
  • плагины, которые отдают комментатору статическую версию страницы (в этом был замечен Hyper Cache), вынуждают пользователя каждый раз вводить свои данные (имя, сайт, email) заново.

Кэширование на уровне запросов поддерживает и реализует самостоятельно, но в этой реализации есть один недостаток: между сессиями не сохраняется (что может привести к неприятным последствиям). Тем не менее, из-за особенностей архитектуры WordPress, без кэша работать будет очень медленно.

Очевидно, что если сохранять между сессиями (что поддерживает, но самостоятельно реализовать не может), это может весьма положительно повлиять на .

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

На .org, как ни странно, плагинов, поддерживающих долговременное кэширование на уровне запросов, я не нашел. Вероятно, разработчики считают, что это экономия на спичках и разумнее будет творить что-то более глобальное (например, страничное кэширование).

Первая версия плагина родилась у меня давно — еще в июне. И лишь недавно я нашел время, чтобы привести в человеческий вид, добавить интерфейс для администратора и перевести на русский язык.

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

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

Особенности плагина:

  • возможность отключения кэширования (в том числе и встроенного в );
  • возможность отключения межсессионного кэширования;
  • возможность задания групп, не подлежащих межсессионному кэшированию (полезно только разработчикам, которые знают, о чём идёт речь);
  • хранит свои настройки непосредственно в коде (в файле wp-content/object-cache.php). Это связано с проблемой курицы и яйца, а также с архитектурными особенностями : дело в том, что инициализирует вызовом wp_cache_init(): при обработке данного вызова должен инициализировать . Если бы настройки хранились в таблице wp_options, бы использовал функцию get_option(). Но функция get_option() вызывает wp_cache_get(), а wp_cache_get() не может использовать , потому что он не инициализирован. В принципе, это не является проблемой; проблема заключается в том, что get_option() читает все опции из таблицы, для которых autoload установлен в 1. На практике это 90–95% таблицы. Ранее я уже писал, что в целом и get_option() в частности спроектированы так, что если кэширующий модуль не вернул данные, функция затребует их вновь и в полном объеме. Иными словами, опции будут загружены дважды (два обращения к базе данных). А это нехорошо. Поэтому настройки хранятся непосредственно в коде.

существует в двух локализациях: русской и английской. Если есть желание перевести на другой язык, пишите.

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

После активации для хранения кэша будет использовать каталог wp-content/plugins/file-cache/cache. Поэтому перед активацией каталог должен быть доступен на запись. Каталог для хранения кэша можно изменить в настройках (для увеличения производительности имеет смысл размещать на RAM-диске); каталог также должен быть доступен на запись.

Плагину при активации/сохранении настроек должен быть доступен на запись каталог wp-content: в него копируется файл object-cache.php. После того, как активирован и сконфигурирован, права на запись можно убрать.

Удаление/деактивация плагина:
Для успешной деактивации каталог wp-content должен быть доступен на запись — требуется удаление файла wp-content/object-cache.php.

Для срочной деактивации плагина можно удалить или переименовать файл wp-content/object-cache.php. В этом случае будет использовать встроенные механизмы кэширования.

Download

Скачать последнюю версию плагина WP File Cache.

Список изменений

  • Версия 1.2.5:
    • Кэшируемые данные больше не передаются по ссылке, что позволяет избежать случайного изменения данных в кэше;
    • Кэшируемые объекты перед помещением в клонируются (из тех же соображений).
  • Версии 1.2.3–1.2.4:
    • Размещение плагина в репозитории и исправление ошибок, вызванных изменением каталога плагина. Спасибо Raveex за терпение и тестирование.
  • Версия 1.2.2:
    • Добавлена базовая совместимость с  3.0.
  • Версия 1.2.1:
    • Оптимизация кода, ускорение работы кэширующего движка;
    • Блокировка файла при записи;
    • Использование меньшего количества системных вызовов при записи файлов.
  • Версия 1.1
  • Версия 1.0
  • Версии 0.2.x

Оценки производительности

  1. «Голый» WordPress 2.7rc1:
    1. Кэширование запрещено: 191 запроса, 0.587 с
    2. Встроенный в : 18 запросов, 0.350 с
    3. : сессионное кэширование: 18 запросов, 0.334 с
    4. : долговременное кэширование: 3 запроса, 0.315 с
  2. Данный сайт:
    1. Кэширование запрещено: 1442 запроса, 3.558 с
    2. Встроенный в : 51 запрос, 0.776 с
    3. : сессионное кэширование: 51 запрос, 0.615 с
    4. : долговременное кэширование: 13 запросов, 0.576 с

Автор: Vladimir, опубликовано в: Всё подряд, комментариев: 165
2
Дек
2008