Zend_Cache_Backend_Sqlite vs Zend_Cache_Backend_File - PullRequest
5 голосов
/ 08 июня 2010

В настоящее время я использую Zend_Cache_Backend_File для кэширования моего проекта (особенно ответов от внешних веб-сервисов). Я бродил, если бы мог найти какую-то выгоду в миграции структуры на Zend_Cache_Backend_Sqlite.

Возможные преимущества:

  • Файловая система упорядочена (только 1 файл в папке кэша)
  • Удаление записей с истекшим сроком должно быть быстрее (мое предположение, так как zend не нужно сканировать внутренние метаданные для определения даты истечения срока действия каждого кэша)

Возможные недостатки:

  • Поиск записи для чтения (с проверкой файлов, если файл существует на основе имени файла и должен быть немного быстрее) с точки зрения скорости.

Я попытался немного поискать в интернете, но, похоже, дискуссий по этому вопросу немного.

Что вы думаете об этом?

Спасибо заранее.

Ответы [ 2 ]

3 голосов
/ 28 октября 2010

Еще одним недостатком Zend_Cache_Backend_File является то, что если у вас много файлов кэша, может потребоваться много времени для загрузки одной ОС, поскольку она должна каждый раз открывать и сканировать весь каталог кэша. Допустим, у вас есть 10 000 кеш-файлов, попробуйте выполнить команду оболочки ls в директории кеша, чтобы узнать, сколько времени потребуется, чтобы прочитать все файлы и распечатать список. Эта та же самая задержка будет преобразовываться в ваше приложение каждый раз, когда требуется доступ к кешу.

Вы можете использовать опцию hashed_directory_level , чтобы немного смягчить эту проблему, но она встраивает только до двух каталогов в глубину, что может быть недостаточно, если у вас много файлов кэша. Я столкнулся с этой проблемой в проекте, что привело к снижению производительности с течением времени, когда кэш становился все больше и больше. Мы не могли переключиться на Zend_Cache_Backend_Memcached, потому что нам требовалась функциональность тегов (не поддерживается Memcached). Переключение на Zend_Cache_Backend_Sqlite является хорошим вариантом для решения этой проблемы снижения производительности.

3 голосов
/ 08 июня 2010

Я бы сказал, это зависит от вашего приложения.

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

Измеряя только производительность, Zend_Cache_Backend_Static - самый быстрый.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...