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

posted @ 2014-12-08 15:13  Forward1990  阅读(411)  评论(0编辑  收藏  举报