Сколько включает PHP, слишком многие?

Каждая страница на моем веб-сайте представляется с помощью PHP.

Каждый файл PHP использует, приблизительно 10 включают. Таким образом для каждой страницы, которая отображена, сервер должен выбрать 10 файлов, в дополнение к остальной части его функций (MySQL, и т.д.).

Я должен объединить их в сингл, включают файл? Это будет иметь КАКОЕ-ЛИБО значение к реальной скорости? Это не тривиальная задача, поскольку было бы спагетти переменного объема для разбираний.

15
задан Peter Mortensen 2 December 2012 в 11:46
поделиться

4 ответа

Включаемые файлы обрабатываются на сервере, поэтому они не "извлекаются" браузером. Разница в производительности между использованием включений по сравнению с копированием и вставкой кода или консолидацией файлов настолько незначительна (и я предполагаю, что мы говорим о диапазоне от 10 до 100 мс, самое большее), что это не так. вообще того стоит.

Не стесняйтесь включать и требовать , сколько душе угодно. Чистый код намного важнее, чем сокращение загрузки страницы менее чем на 100 мс. Если вы создаете что-то, для чего важно время, вам в любом случае не следует использовать PHP.

24
ответ дан 1 December 2019 в 02:37
поделиться

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

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

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


Ссылка

3
ответ дан 1 December 2019 в 02:37
поделиться

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

0
ответ дан 1 December 2019 в 02:37
поделиться

include \ и требует` только открытого файла на стороне сервера, но это может занять много времени в зависимости от оборудования / файловой системы и т. Д.

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

Затем, если вы считаете, что включенные файлы являются источником замедления (и я думаю, что есть еще много других моментов, которые нужно улучшить раньше), вы можете попытаться автоматически объединить файлы. У вас по-прежнему есть один файл для каждого класса при разработке, но вы можете создать файл, содержащий определение каждого класса, чтобы иметь только одно include (что-то вроде cat <весь ваш включенный файл> .php> to_include .php ).

0
ответ дан 1 December 2019 в 02:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: