cakephp: если кеш слишком много страниц - PullRequest
0 голосов
/ 02 октября 2010

Я хочу спросить: если кэшировать слишком много страниц, страница 10000 кэшируется.

10000 страница создает кэш 10000 файлов.Это нормально ?это может создать медленно?

Ответы [ 4 ]

0 голосов
/ 11 июля 2013

Да, но, вероятно, не имеет значения

Файлы полностраничного кэша хранятся в одной папке. Таким образом, кэширование 10 тыс. Страниц означает наличие 10 тыс. Файлов в папке. Это вряд ли будет значительным, но при заполнении кеша производительность приложения будет снижаться.

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

Не используйте кэширование представлений, если в этом нет необходимости

Даже полное кэширование страниц имеет свою стоимость. Обычный php-запрос имеет следующую логику:

user -> internet -> webserver -> php -> (application logic)

Использование кэширования при просмотре всей страницы мало что меняет:

user -> internet -> webserver -> php -> (read and render cache file)

Если в файле кэша нет динамического содержимого, лучше сохранить содержимое в виде статического файла и переместить ответ ближе к пользователю:

user -> internet -> webserver -> static html file

Плагины, такие как html-кеш позволяют это, сохраняя кэшированные представления в виде html-файлов и позволяя веб-серверу обрабатывать запросы перед вызовом php.

Это также означает, что в зависимости от заголовков кэша, отправляемых для HTML-файлов, последующие запросы поступают прямо из кэша браузера пользователя - и вы не можете получить быстрее, чем это:

user -> user's browser cache
0 голосов
/ 02 октября 2010

Файл кэша хранится на сервере в виде статического HTML, а не динамически генерируемого кода HTML, созданного с помощью PHP.

Загрузка этих файлов кэша значительно быстрее, чем запуск кода PHP через компилятор PHP во время выполнения..

Единственная проблема - это, возможно, дисковое пространство, поскольку файлы кэша - это физические файлы на сервере.Большинство файлов кэша должны быть относительно небольшими при правильном использовании, поэтому это не должно быть проблемой на надлежащем веб-сервере с достаточными ресурсами.

0 голосов
/ 06 октября 2010

Файлы кэша, как правило, всегда быстрее, чем запуск сценария PHP, поскольку их не нужно обрабатывать - накладные расходы просто ударяют в файл и извлекают его.

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

Я бы не волновался об этом, и эй Вы всегда можете отключить кэш - верно?

0 голосов
/ 02 октября 2010

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

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