Кэширование require/include. Есть ли смысл?

QQQ

Новичок
Кэширование require/include. Есть ли смысл?

Приветствую,

В проекте приходится подключать достаточно большое количество файлов, в связи с этим возникла пара идей по оптимизации инклюдов.

1. Есть мысль кэшировать php код. То-есть для каждого запроса сваливать все подключаемые файлы в один, и в дальнейшем подключать только один большой нужный файл. Я знаю про кэширование байткода Zend'ом, поэтому хотелось бы знать, с какого количества разных отдельных инклюдов на запрос и разнообразия возможных уникальных запросов появляется смысл это делать?

2. Если забыть про первое. Есть ли смысл писать собственный аналог (get|set)_include_path и кэшировать пути к подключаемым файлам в php массив (далее массив в мемкэш или в подключаемый php-файл), в __autoload() скажем? Или кэш файловой системы справится с этим в любом случае лучше? Опять же с какого порога количества различных файлов и частоты подключения каждого конкретного файла, это может иметь смысл?

Какие мнения?
 

Gas

может по одной?
есть такой материалец - http://dklab.ru/chicken/nablas/49.html
а вообще если у тебя всё идёт через __autoload, то замерь время на подключение файлов и оцени, нужно ли вообще какие-то оптимизации в этой части делать.

Я знаю про кэширование байткода Zend'ом
не только зендом, есть ещё eAccelerator, xCache, APC. Вот что-то из этого первым делом нужно поставить, прежде чем какие-то свои "оптимизации" делать.
 

Adelf

Administrator
Команда форума
Совет: Забудь все эти мысли.
различные кешеры опкода(eAccelerator, xCache, APC) справятся лучше, чем любые твои оптимизации.
 

QQQ

Новичок
Gas за материал спаибо. А про замеры - сделаю конечно. Просто перед тем, как самому в это лезть, хотел узнать, может кто-то уже делал подобное

Adelf
В статье, приведённой выше Gas, утверждается, что один большой файл eAccelerator'ом выполняется в десятки раз быстрее, чем много мелких.
 

Gas

может по одной?
QQQ
просто нужно понимать зачем делается оптимизация, если участок кода занимает 5% времени, то даже ускорив его в 100 раз, быстродействие в целом не сильно увеличиться. Ну если используется "тяжёлый" фрейморк а-ля zend и скорость критична, то может и имеют смысл такие танцы с мерджем файлов, на хабре и статьи были на эту тему.
Но всё равно в первую очередь нужно поставить кешер опкода.
 

fixxxer

К.О.
Партнер клуба
"Склеивание" большого современного фреймворка, состоящего из кучки файлов по принципу "1 класс = 1 файл", в один большой файл, действительно дает заметный прирост производительности (хотя и не такой большой, как может показаться). Бенчей под рукой нет, но эффект заметный.

Конечно, если не стоит кэшер опкода, любые иные действия в подобных направлениях до его установки и настройки вообще бессмысленны. :)
 
Сверху