Загружается ли php-файл полностью с условными операторами? - PullRequest
0 голосов
/ 24 октября 2011

Мне интересно, загружается ли файл целиком, если он содержит условные операторы.

Предположим, у меня большой файл с примерно 5000 строками кода (просто в качестве примера), но половина кода не будет выполнена, потому что он находится в условииБудет ли загружаться файл?

Я предполагаю, что нет, поэтому могу ли я также предположить, что в целом быстрее разделить код на несколько файлов и позволить автозагрузчику обрабатывать необходимые файлы?Или новый запрос файла замедлит все это снова?В этом случае: где граница, когда загрузка файла выполняется быстрее, чем выполнение файла с условными операторами?

Ответы [ 3 ]

2 голосов
/ 24 октября 2011

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

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

  1. Вы потратили все возможные потери производительности, выполняя более простые вещи, такие как настройка кэширования ресурсов, кэширования кода операции и т. Д.? Вы должны иметь, прежде чем добраться до этой точки.
  2. Невозможно ответить на вопрос в любом случае; нужны реальные данные о производительности, к которым имеют доступ только вы.

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

1 голос
/ 24 октября 2011

Прежде всего, преждевременная оптимизация: не делайте этого.Во-вторых, если у вас есть 2500 строк в операторе else, вы должны действительно взять книгу о написании чистого кода.

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

0 голосов
/ 24 октября 2011

Зачем даже думать об этом ?! Установите расширение APC, и PHP сохранит скомпилированный код в памяти. Есть способ настроить его так, чтобы он кешировал статический код, даже не касаясь диска! Вы должны вручную очистить кэш, хотя, когда вы вносите изменения.

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