betway必威-betway必威官方网站
做最好的网站

PHP原生函数一定好吗,PHP内置的Math函数效率测试

本文实例分析了PHP内置的Math函数效率问题。分享给大家供大家参考。具体分析如下:

如题所示。。。木有做大规模的运算,还不知道。。。擦,PHP的Math函数运算原来是如此之慢的。。。大家还是麻烦点,手写多几句算鸟~~~

今天在阅读kohana源码中的Arr类的时候发现了这样一个函数

如题所示,对于没有做过大规模运算的朋友来说,可能还不知道,PHP的Math函数运算原来是如此之慢的,大家还是麻烦点,手写多几句,代码如下:

小二!上代码。。。。

复制代码 代码如下:

复制代码 代码如下:

 

 /**
  * Fill an array with a range of numbers.
  *
  *     // Fill an array with values 5, 10, 15, 20
  *     $values = Arr::range(5, 20);
  *
  * @param   integer $step   stepping
  * @param   integer $max    ending number
  * @return  array
  */
betway必威官方网站, public static function range($step = 10, $max = 100)
 {
  if ($step < 1)
   return array();

$start = microtime(TRUE);   
for ($i=0; $i < 200000; $i ){   
    $s = 0;
    for ($j=0; $j < 3; $j ){    
       $s = ($j $i 1) * ($j $i 1);
    }   
}   
echo microtime(TRUE) – $start;  // output: 0.33167719841003

 代码如下

  $array = array();
  for ($i = $step; $i <= $max; $i = $step)
  {
   $array[$i] = $i;
  }

再对比下用Math函数的代码和结果,代码如下:

$start = microtime(TRUE);  
for ($i=0; $i < 200000; $i )   {  
    $s = 0;       for ($j=0; $j < 3; $j )       {   
       $s = ($j $i 1) * ($j $i 1);       }  
}  
echo microtime(TRUE) – $start;   # output: 0.33167719841003 

  return $array;
 }  

复制代码 代码如下:

 

    看到这里的时候,我发现php的原生函数也是可以实现这个功能的,忽然想到之前听到过的一个前辈关于php性能优化的说法——PHP为我们提供了那么多的原生函数,我们尽量用原生函数解决问题。于是我就做了个测试,看看php原生函数性能究竟比自己写的快多少。要测试的函数有原生函数range()和上面的函数_range(),这里加下划线开始是因为重写原生函数range()会报错“Fatal error: Cannot redeclare range() in”。

本文由betway必威发布于编程开发,转载请注明出处:PHP原生函数一定好吗,PHP内置的Math函数效率测试

TAG标签: betway必威
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。