Производительность и require (include)?

XiMiK

Новичок
Производительность и require (include)?

У меня тут возник один скромный вопрос на тему производительности.

Скажем есть функция в каторой при неком условии выполняется много кода. Если это код запихнуть в отдельный файл и вставлять с помощью require():

PHP:
function my_func() {
    ... код ...
    if (...) {
        require('mycode.php');
    }
}
возрастёт ли производительность при условии , что этот кусок кода в условии может ни разу не быть вызван? Или обработчик полюбому перед исполнением программы подгузит и обработает mycode.php?
 

schmeiser

Новичок
Возьми и потестируй, елси условие не виполняется то и код не задейсвован, а на require уйдйот дополнительное время
 

XiMiK

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

valyala

Новичок
Подключение файла происходит во время исполнения скрипта. Если бы оно происходило во время синтаксического анализа, то ПХП не знал бы, что делать с таким кодом:
PHP:
$inc_files = array(
    'a.inc.php',
    'b.inc.php',
    ....
    'z.inc.php',
);
foreach ($inc_files as $key => $inc_file) {
    include($inc_file);
}
возрастёт ли производительность при условии , что этот кусок кода в условии может ни разу не быть вызван?
Производительность скрипта не изменится, зато уменьшится время его исполнения за счет того, что ПХП не будет парсить кусок кода, который инклюдится в невыполняемой ветви условия.
 

Кром

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

XiMiK

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

Кром
Ты сам себе противоречишь ;)
Как раз выиграю! И очень даже много.
Все твои подключения займут доли секунды, тогда как...
К тому же есть большая вероятность (в моём случае это выборка из кэша), что этот кусок БОЛЬШОГО кода даже не будет прочитан.

Значит будем резать на инклюды...
 

XiMiK

Новичок
Автор оригинала: Кром
>Ты сам себе противоречишь

В каком месте? :)
сори, не догнал что ты имел в виду...

ну вопрос кривых рук не рассматривается

Естественно что при чтении из сокета или при массовых запросах это не актуально, но скажем если в основном это будут многжество всяких циклов, условий и т.д., то зачем всё это грузить, если в результате (вероятно) скрипт придёт к выводу "Хело Ворлд!"?

Кстати на счёт доли секунды! Доли бывают разные: 0,1 и 0,5 далеко не одно и тоже....
 
Сверху