В последних версиях PHP есть кеш имен файлов, чтобы узнать реальный путь к файлам, а require_once()
и include_once()
могут воспользоваться им.
Есть значение, которое вы можете установить в php.ini для установки размера кеша, но я понятия не имею, как определить, какой размер должен быть. Значение по умолчанию – 16k, но я не вижу способа узнать, сколько из этого кеша мы используем. Документы расплывчаты:
Определяет размер кеша realpath, который будет использоваться PHP. Это значение должно быть увеличено в системах, где PHP открывает много файлов, чтобы отразить количество выполняемых файловых операций.
Да, я могу увеличить количество разрешенных кешей и запустить тесты с помощью ab
или какого-либо другого тестирования, но мне хотелось бы что-то с немного большей интроспекцией, чем просто с расстояния.
Вероятно, вы уже это нашли, но для тех, кто сталкивается с этим вопросом, вы можете использовать realpath_cache_size () и realpath_cache_get (), чтобы выяснить, какая часть кеша realpath используется на вашем сайте и соответствующим образом настройте параметры.
Хотя я не могу предложить ничего конкретного в вашей ситуации, я понимаю, что 16k довольно мало для большинства более крупных приложений PHP (особенно тех, которые используют инфраструктуру, такую как Zend Framework ). Я бы сказал, по крайней мере, вдвое больше размера кеша, если ваше приложение использует множество включений и посмотреть, куда идти оттуда. Вы также можете увеличить TTL до тех пор, пока ваша структура каталогов довольно непротиворечива.
16K – это количество файлов, которые не являются активными.
Установите для 1k для большинства сайтов. Очень похоже на настройки в APC, xcache ea и т. Д.