array_push 效率测试

array_push 效率测试

在php中数组赋值的时候用array[]这种方法效率会较高于array_push(),于是乎各种缘由就有了下面的测试
测试代码:
<? php
    
/* *
        *数组性能测试
        *for循环遍历测试函数有性能影响所以没有用,不同时调用2个函数也是担心具有影响,不封装同时执行代码是具有影响的
        *测试是更改$count参数(从10~100000 整取递增)和调用方法手动刷新,记录时间为平均大概时间
    *
*/
    
$count   =   10 ;
    arrayTest01(
$count );
    
function  arrayTest01( $count ) {
        
$arr   =   array  ();
        
$time   =   microtime ( true );
        
for  ( $i   =   0 $i   <   $count $i ++ ) {
            
$array []  =   $i ;
        }
        
echo  ( microtime ( true -   $time );
    }
    
function  arrayTest02( $count ) {
        
$arr   =   array  ();
        
$time   =   microtime ( true );
        
for  ( $i   =   0 $i   <   $count $i ++ ) {
            
array_push ( $arr ,   $i );
        }
        
echo  ( microtime ( true -   $time );
    }
?>

效率大概是array[]快将近一倍,测试环境是ubuntu 11 和 windows 7


windows php-5.2.17/ Apache2.2
times($count)     10 100 1000 10000          100000        1000000
array[] 2.31E-05 0.000104 0.000867 0.008417 0.043666 0.288323
array_push        2.79E-05 0.000181 0.001614 0.014447 0.055875 0.491052
ubuntu11.04 PHP 5.3.6/apache2.2
array[] 1.91E-05 7.70E-05 0.000726 0.007669 0.040492 报错
array_push        2.50E-05 1.26E-04 0.001149 0.013714 0.056978 报错

这是官方网站上的说辞
Note: 如果用 array_push() 来给数组增加一个单元,还不如用 $array[] = ,因为这样没有调用函数的额外负担。
官网链接:
http://cn.php.net/array_push

你可能感兴趣的:(array_push 效率测试)