Hello everyone,
when testing speed of includes and requires i found that "require_once"
seems to be very slow in comparison to "require". Even worse
"require_once" seems to be slower than a php function "myrequire_once".
This is true not only for cli but also when using apc or eAccelerator.
Does anyone has an explanation for this?
Testcode:
<?
$start_time = microtime(true);
function myrequire_once($file)
{
static $loaded = array();
if (!array_key_exists($file, $loaded))
{
$loaded[$file] = 1;
require $file;
}
}
for ($i=0;$i<1000;$i++) {
require_once('manyClasses/'.$i.'.class.php');
//myrequire_once('manyClasses/'.$i.'.class.php');
}
$execution_time = microtime(true) - $start_time;
echo number_format($execution_time,4)."\n";
?>
I first generated the classes in manyClasses with this generation code
(you have to create the directory manyClasses first):
<?
$template = '<?
class A%s
{
private $B%s = "%s";
function C%s($arg1, $arg2)
{
if (rand() > 1000)
return $arg1 + $arg2;
else
return 0;
}
};
?>';
for($i=0; $i< 1000; $i++)
{
$rand = rand();
$file = sprintf($template, md5($rand), md5($rand+1), md5($rand+2),
md5($rand+3));
file_put_contents('manyClasses/'.$i.'.class.php', $file);
}
?>
Faithfully
Dominic Letz
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php