По материалам ru_php следует, что для включения php-файла нужно пользоватся include(), а не require(), и не изобретать своих функций.
В то же время, функциями include_once() и require_once() пользоваться вообще не нужно. Они намного (в 100-105 раз) медленнее чем изобретенная функция my_include_once().
На основе проведенных тестов справедливо утверждать, что скорость выполнения php-скрипта может варьироваться от 0,005 до 25 секунд.
Технические подробности ниже.
Результаты тестирования:
0.00478544235229 my_include_once()
0.42984147071838 include_once()
0.43468303680420 require_once()
0.47337899208069 my_include()
0.56996216773987 include() (первое включение файла - самое медленное)
0.57470202445984 require() (первое включение файла - самое медленное)
При вложенном файле на 65 КБ:
0.00593957901000 my_include_once()
0.44436344146729 include_once()
0.45239635467529 require_once()
4.86428661346440 my_include()
23.6450767993930 include()
24.7919821739200 require()
Apache/1.3.27 (Win32), PHP 4.3.6 (module), Pentium IV 2.4 GHz
Код волшебной функции my_include_once():
function my_include_once($f)
{
static $ar = array();
if (!array_key_exists(($rf = crc32($f)), $ar))
{
$ar[$rf] = true;
my_include($f);
}
}
Код функции my_include():
function my_include($f)
{
eval('?>'. file_get_contents($f) .'
}
воскресенье, 20 июня 2004 г.
PHP: include() vs. require()
Подписаться на:
Комментарии к сообщению (Atom)
1 комментарий:
Функция работает ровно с такой-же скоростью, как и инклюд.
Отправить комментарий