静以修心

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

posted on 2012-04-04 18:01 kohri 阅读(1734) 评论(1)  编辑  收藏 所属分类: PHP


只有注册用户登录后才能发表评论。


网站导航:
 

导航

<2012年4月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

统计

常用链接

留言簿

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜