php 自定义函数和原生函数执行效率问题
从网上看到的,有些时候原生函数的效率可能没有自定义的函数高
例如range函数,用它来初始化一个键值与键名相等的,且键名差值相同的数组,原生函数使用效率反而不高,
这可能是因为range函数不仅仅实现了这一种需求,这个函数还可以接受一些其他参数去执行算法,返回值
所以当我们仅需要某个功能时,可能使用自己的函数会运行更快,原生函数会经过各种判断,才能执行想要的方法(自己想的,可能不对)
例:
function ranges($step = 5, $max = 20)
{
if ($step < 1)
return array();
$array = array();
for ($i = $step; $i <= $max; $i += $step)
{
$array[$i] = $i;
}
return $array;
}
$time['begin'] = microtime(true);
//$tmp = range(0,1000000,3);
$tmp = ranges(0,1000000,3);
$time['end'] = microtime(true);
echo $time['end'] - $time['begin'].'s'."\r";
echo (memory_get_peak_usage())."M";
自定义:
7.8678131103516E-6s 0.59011840820312M
原生
0.069043874740601s 68.172889709473M