php中array_push与$arr[]=$value性能比较测试

在高蒙博客看到“php中array_push与$arr[]=$value性能比较测试”,这个问题在平时使用过程中还真没有注意。再看到这篇文章后,也动手试了试,结果如下。

比较array_push与 $arr[]=$value性能

1、使用array_push压入1000000个元素。

  1. $arr = array();  

  2. $starttime = get_microtime();  

  3. for ($i=0; $i < 1000000; $i++) {   

  4.     array_push($arr , $i);  

  5. }  

  6. $endtime = get_microtime();  

  7. printf("用时%f 毫秒" , ($endtime-$starttime)*1000);//用时3559.043169 毫秒  

  8. function get_microtime(){  

  9.     //list($msec,$sec) = explode(' ' , microtime());  

  10.     //return (float)$msec+(float)$sec;  

  11.     return microtime(true);  

  12. }  

用时3559.043169 毫秒

 

2、使用$arr[] = $value压入100000个元素。

  1. $arr = array();  

  2. $starttime = get_microtime();  

  3. for ($i=0; $i < 1000000; $i++) {   

  4.     $arr[] = $i;  

  5. }  

  6. $endtime = get_microtime();  

  7. printf("用时%f 毫秒" , ($endtime-$starttime)*1000);//用时371.806145 毫秒  

  8. function get_microtime(){  

  9.     //list($msec,$sec) = explode(' ' , microtime());  

  10.     //return (float)$msec+(float)$sec;  

  11.     return microtime(true);  

  12. }  

用时371.806145 毫秒

结果:

array_push 的执行时间:3559.043169 毫秒,而 $arr[] = $value 的执行时间:371.806145 毫秒。由此可见,在仅仅添加一个元素的情况之下,$arr[] = $value 的执行时间要远远低于 array_push 所需的时间。

3.同时压入多个元素比较。

使用array_push方法,压入100000个元素,每次压入50个元素

  1. $arr = array();  

  2. $starttime = get_microtime();  

  3. for ($i=0; $i < 1000000; $i = $i+50) {   

  4.      array_push($arr$i,$i+1,$i+2,$i+3,$i+4,$i+5,$i+6,$i+7,$i+8,$i+9,$i+10,  

  5.         $i+11,$i+12,$i+13,$i+14,$i+15,$i+16,$i+17,$i+18,$i+19,  

  6.         $i+21,$i+22,$i+23,$i+24,$i+25,$i+26,$i+27,$i+28,$i+29,  

  7.         $i+31,$i+32,$i+33,$i+34,$i+35,$i+36,$i+37,$i+38,$i+39,  

  8.         $i+41,$i+42,$i+43,$i+44,$i+45,$i+46,$i+47,$i+48,$i+49);  

  9. }  

  10. $endtime = get_microtime();  

  11. printf("用时%f 毫秒" , ($endtime-$starttime)*1000);//用时237.401962 毫秒  

  12.   

  13. function get_microtime(){  

  14.     //list($msec,$sec) = explode(' ' , microtime());  

  15.     //return (float)$msec+(float)$sec;  

  16.     return microtime(true);  

  17. }  

结果:

array_push 的执行时间:用时237.401962 毫秒,而 $arr[] = $value 刚测试执行时间:用时371.806145 毫秒,由此可见 array_push 的执行速度快。

综上所述,在只压入一个元素的时候使用 $arr[] = $value,当可以同时压入多个元素的时候推荐使用 array_push。

(注:如果是压入一个元素,使用$arr[]=$value效率高,因为可以节省调用函数的额外负担。如果同时压入多个元素,使用array_push效率高,因为不用重复获取文件尾的指针。)

温馨提示:
1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:duhaomu@163.com,我们将第一时间处理!
2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。
3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明

给TA赞赏
共{{data.count}}人
人已赞赏
未整理

【超燃计划】30天蜕变行动营,干掉平庸的自己

2021-3-23 0:00:00

未整理

一站式搞定视频号运营变现,从0到1学视频号运营实操培训课程视频

2021-3-25 0:00:00

0 条回复 A文章作者 M管理员
----《》
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索