Еще одним недостатком Zend_Cache_Backend_File является то, что если у вас много файлов кэша, может потребоваться много времени для загрузки одной ОС, поскольку она должна каждый раз открывать и сканировать весь каталог кэша. Допустим, у вас есть 10 000 кеш-файлов, попробуйте выполнить команду оболочки ls
в директории кеша, чтобы узнать, сколько времени потребуется, чтобы прочитать все файлы и распечатать список. Эта та же самая задержка будет преобразовываться в ваше приложение каждый раз, когда требуется доступ к кешу.
Вы можете использовать опцию hashed_directory_level , чтобы немного смягчить эту проблему, но она встраивает только до двух каталогов в глубину, что может быть недостаточно, если у вас много файлов кэша. Я столкнулся с этой проблемой в проекте, что привело к снижению производительности с течением времени, когда кэш становился все больше и больше. Мы не могли переключиться на Zend_Cache_Backend_Memcached, потому что нам требовалась функциональность тегов (не поддерживается Memcached). Переключение на Zend_Cache_Backend_Sqlite является хорошим вариантом для решения этой проблемы снижения производительности.