function test(){
$i=100;
$arr=array();
do { array_push($arr,$i); }while ($i--);
}
$func='test';
$cnt=10000;
$start=microtime(true);
do {
call_user_func($func);
}while ($cnt--);
$end=microtime(true)
echo "\ncall_user_func exec time " ,$end-$start;
$cnt=10000;
$start=microtime(true);
do {
$func();
} while ($cnt--);
$end=microtime(true);
echo "\ncall_by_name exec time " ,$end-$start;
结果是
call_user_func exec time 1.7575268745422
call_by_name exec time 1.3825221061707
如果两段代码换个位置 结果是
call_by_name exec time 1.7725269794464
call_user_func exec time 1.3875210285187
从结果看来,性能跟代码实现没关系,只跟位置有关系
$i=100;
$arr=array();
do { array_push($arr,$i); }while ($i--);
}
$func='test';
$cnt=10000;
$start=microtime(true);
do {
call_user_func($func);
}while ($cnt--);
$end=microtime(true)
echo "\ncall_user_func exec time " ,$end-$start;
$cnt=10000;
$start=microtime(true);
do {
$func();
} while ($cnt--);
$end=microtime(true);
echo "\ncall_by_name exec time " ,$end-$start;
结果是
call_user_func exec time 1.7575268745422
call_by_name exec time 1.3825221061707
如果两段代码换个位置 结果是
call_by_name exec time 1.7725269794464
call_user_func exec time 1.3875210285187
从结果看来,性能跟代码实现没关系,只跟位置有关系
