深入for,while,foreach遍歷時間比較的詳解
更新時間:2013年06月08日 10:12:27 作者:
本篇文章是對for,while,foreach遍歷時間比較進行了詳細的分析介紹,需要的朋友參考下
這個是從別人空間里看來的,不過自己還真從來沒這么做過他們三者之間的比較,今天也學習了一下。
<?php
$arr = array();
for($i = 0; $i < 50000; $i++){
$arr[] = $i*rand(1000,9999);
}
function GetRunTime()
{
list($usec,$sec)=explode(" ",microtime());
return ((float)$usec+(float)$sec);
}
/*=============================================*/
$time_start = GetRunTime();
for($i = 0; $i < count($arr); $i++){
$str = $arr[$i];
}
$time_end = GetRunTime();
$time_used = $time_end - $time_start;
echo 'Used time of for:'.round($time_used, 7).'(s)<br /><br />';
unset($str, $time_start, $time_end, $time_used);
/*=============================================*/
$time_start = GetRunTime();
while(list($key, $val) = each($arr)){
$str = $val;
}
$time_end = GetRunTime();
$time_used = $time_end - $time_start;
echo 'Used time of while:'.round($time_used, 7).'(s)<br /><br />';
unset($str, $key, $val, $time_start, $time_end, $time_used);
/*=============================================*/
$time_start = GetRunTime();
foreach($arr as $key => $val){
$str = $val;
}
$time_end = GetRunTime();
$time_used = $time_end - $time_start;
echo 'Used time of foreach:'.round($time_used, 7).'(s)<br /><br />';
?>
復制代碼 代碼如下:
<?php
$arr = array();
for($i = 0; $i < 50000; $i++){
$arr[] = $i*rand(1000,9999);
}
function GetRunTime()
{
list($usec,$sec)=explode(" ",microtime());
return ((float)$usec+(float)$sec);
}
/*=============================================*/
$time_start = GetRunTime();
for($i = 0; $i < count($arr); $i++){
$str = $arr[$i];
}
$time_end = GetRunTime();
$time_used = $time_end - $time_start;
echo 'Used time of for:'.round($time_used, 7).'(s)<br /><br />';
unset($str, $time_start, $time_end, $time_used);
/*=============================================*/
$time_start = GetRunTime();
while(list($key, $val) = each($arr)){
$str = $val;
}
$time_end = GetRunTime();
$time_used = $time_end - $time_start;
echo 'Used time of while:'.round($time_used, 7).'(s)<br /><br />';
unset($str, $key, $val, $time_start, $time_end, $time_used);
/*=============================================*/
$time_start = GetRunTime();
foreach($arr as $key => $val){
$str = $val;
}
$time_end = GetRunTime();
$time_used = $time_end - $time_start;
echo 'Used time of foreach:'.round($time_used, 7).'(s)<br /><br />';
?>
相關文章
php中使用ExcelFileParser處理excel獲得數(shù)據(jù)(可作批量導入到數(shù)據(jù)庫使用)
使用ExcelFileParser處理excel獲得數(shù)據(jù) 可以用作批量導入到數(shù)據(jù)庫使用,需要獲取excel數(shù)據(jù)的朋友可以參考下。2010-08-08
關于Anemometer圖形化顯示MySQL慢日志的工具搭建及使用的詳細介紹
這篇文章主要介紹了關于Anemometer圖形化顯示MySQL慢日志的工具搭建及使用的詳細介紹,Anemometer 是一個圖形化顯示MySQL慢日志的工具,Anemometer可以很輕松的幫你去分析慢查詢日志,讓你很容易就能找到哪些SQL需要優(yōu)化。感興趣可以來了解一下2020-07-07

