Zend Framework → Пощупал Zend_Cache
Заинтересовался компонентами Zend Framework, пользоваться которыми ещё не приходилось. Решил попробовать Zend_Cache. Собственно попробовал кеш на этом самом блоге, который родился и продолжает развиваться из моего тестового задания для приёма на работу.
Выбрал 3 не самых ресурсоёмких запроса, которые происходят при каждом обращении к IndexController-у. Это выборка из БД названий непустых категорий и тегов, в которых уже имеются записи, а также имён пользователей блога (я тут пока один).
Код вставить пока не получается, его мочат мои же фильтры, обрабатывающие текст перед выводом, надо будет разобраться :) Да и не в коде дело, ничего секретного там нет, всё как в официальном руководстве по фреймворку, что касается Zend_Cache. А вот результаты поразили...
Я ожидал разницы в считанные миллисекунды максимум, но вышло совсем по другому. Ниже приведу цифры, полученные в результате тестирования на своей локальной машине. Среднее время получения данных и среднеквадратичное отклонение этого времени. Производил эксперимент по 20 раз. Величины выражены в секундах.
Без Zend_Cache | ‹t› = 0.204060 | σ = 0.013838 |
С Zend_Cache | ‹t› = 0.007756 | σ = 0.002053 |
На реальном хостинге величины другие, чем на моём компутере, но разница тоже ощутимая. Однозначно буду использовать этот компонент из фреймворка :) Теперь попробую здесь закешировать что-то более существенное и посмотрю на изменения.
Комментарии
http://habrahabr.ru/blogs/mysql/41166
http://dev-4-web.ru/speed-up-site-w-mysql-caching