函数执行效率测试(foreach、for、while)

原创 2015年11月18日 16:38:14

一般来说,我们都认为在遍历数组的时候,foreach有着无可匹敌的优势,

而for和while两者之间的执行效率则没有太大的差别。

事实如何,我将借助foreach、for、while三个函数来说明如何测试函数的执行效率。

注:案例出自《高性能PHP应用开发》

测试代码如下:

<?php
$items = array_fill(0,100000,'1234567890');
reset($items);


$start = microtime();//函数执行时间需要以毫秒来计算时的开始时间
//$i = 0;
foreach ($items as $item)
{
//$i++;
$x = $item;
}
echo microtime()-$start;//函数执行时间需要以毫秒来计算时的结束时间
/*
 * foreach函数
 * ---------------------------
foreach ($items as $item)
{
$x = $item;
}
***while函数
-------------------------------
$i = 0;
while ($i<100000)
{
$x = $items[$i];
$i++;
}
***for函数
------------------------------------
$i=0;
for(;$i<100000;)
{
$j = $items[$i];
$i++;
}


$start = date('H:i:s');//函数执行时间需要以秒来计算时的开始时间
$end = date('H:i:s');//函数执行时间需要以秒来计算时的结束时间
*/
?>

测试结果表明,在执行数组时,foreach的确有着无可比拟的优势,for与while则相差不大。

另外就是一些测试函数执行时间的方法,相信很容易理解。

而foreach之所以在执行数组时有着无可比拟的速度,是由于它少了“++”这个操作,以及不需要用到“数组变量[索引]”这种方式去取值。

版权声明:本文为博主原创文章,未经博主允许不得转载。

PHP中For、While、Foreach循环的比较

在使用PHP作为编程语言的过程中,我们经常会遇到需要将一段代码执行多次的情况。这时就需要用到PHP循环了。PHP提供了三种不同类型的循环供你在合适的场景中使用: For 循环While 循环Fore...
  • anda0109
  • anda0109
  • 2016年02月24日 16:46
  • 2977

java foreach与for遍历效率对比

由于本人在准备秋招,所以在看到foreach和for那个遍历效率更高的问题的时候,我百度了,又谷歌了,但是基本有的人说for更好,foreach更好,但是我无意中看到有人说如果是数组类型的迭代器的话,...
  • lywoct
  • lywoct
  • 2016年09月08日 23:10
  • 3567

测试for,foreach和Iterator遍历效率

今天突然间想起来之前看过一篇博客,说起了for和foreach遍历效率的区别,于是验证一番,得到如下结论。 对于数组而言,for和foreach遍历效率相差不大。 对于List而言,foreach和I...
  • u013257679
  • u013257679
  • 2016年04月22日 21:14
  • 2793

Asp.net的条件和循环语句示例(If,Swich,While,For,Goto,foreach,Lock可直接运行)

#region =========================================================== \\ ★ 【判断语句】 Respons...
  • dxnn520
  • dxnn520
  • 2012年11月04日 05:55
  • 6516

Smarty标签运算,控制结构[if,for,foreach,section,while]

Smarty标签运算: 在页面上做简单的运算[temp5.html] 条件判断if 循环结构for foreach用得比较多,foreach例子从数据库取出的数据 ...
  • sonia_gintoki
  • sonia_gintoki
  • 2015年10月19日 20:58
  • 693

PHP循环控制 for 、while、 foreach 语句解析

for循环控制语句 基本语法结构: for(循环初值;循环的条件;步长){ //n多语句,循环体; } for循环实例: while循环控制语句 只要指定的条件为真,while 循环就会执行代码...
  • u013372487
  • u013372487
  • 2015年04月27日 20:21
  • 993

C# for、while和foreach遍历产生GC

最近在网上看到了有关于Foreach遍历会产生GC的文章今天测试了下,在这里记录下怕忘记。 先上测试代码using UnityEngine; using System.Collections; usi...
  • hyf2713
  • hyf2713
  • 2016年08月27日 22:25
  • 373

练习使用for、while、do while、foreach in等循环语句

  • 2014年10月29日 13:34
  • 81KB
  • 下载

从汇编角度分析for和while的效率

  • 2015年03月18日 15:44
  • 104KB
  • 下载

PHP 循环语句 while、do...while、for、foreach

  • 2013年12月02日 19:22
  • 48KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:函数执行效率测试(foreach、for、while)
举报原因:
原因补充:

(最多只允许输入30个字)