PHP → Насколько быстра функция function_exists

25.04.2010

В Drupal, функция function_exists используется повсеместно. Вся система хуков держится на ней и на call_user_func*. Поэтому мне стало интересно, насколько быстро она делает своё дело.

Для тестов был взят php файл (~88kb, ~3500 строк кода) с набором небольших функций (144 штуки), в конец добавлен код:

$timestart = microtime(true); 

for ($i = 0; $i < 10000; $i++){
    if (function_exists('function_' . rand(0, 999999999))){
        // ...
    }
}

echo round(microtime(true) - $timestart, 10) . ' sec.';

В результате, среднее время на 10 000 итераций составило 0.0078 sec. Потрясающе! :)

Тестирование проводилось на боевом VDS.

Похожие записи

Комментарии

Гость
27.09.2010, 13:26

Есть подозрение, что поиск происходит не по коду, а по внутреннему массиву, в котором хранятся названия всех функций.

да, так и есть, глупо бы было искать по подобию strpos =)

Добавить комментарий