Про СМИ, рекламу, переводы, разработку сайтов
tty01
дневник заведен 16-02-2003
постоянные читатели [21]
Alick, Best Windows, Creative emotion, Dimok, donGUZZINI, endymion, finnal27, Happines, Maxtradamus, Micra, pakt, photo, quindar, rlxa, Withered Wretch, апельсинка, Букля_, Бумен, ПАРАД УРОДОВ, Скромняга-2, Тривиальное чтиво
закладки:
цитатник:
дневник:
местожительство:
Московская область, Россия
интересы [91]
юзабилити, php, словари, юникод, создание сайтов, переводы
антиресы [11]
журналисты
[1] 16-11-2004 14:01
Эх...

[Print]
Тарантул
[1] 16-11-2004 13:58
e-

[Print]
Тарантул
20-06-2004 02:38 PHP: include() vs. require()
По материалам 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) .'<?php ');
}
Закрыть