在做程序開發(fā)過程中,對(duì)于大項(xiàng)目我們要十分重視程序執(zhí)行速度,速度直接影響到用戶體驗(yàn),對(duì)于所有開發(fā)者都希望了解到自己開發(fā)的程序或某個(gè)頁面執(zhí)行下來需要多少時(shí)間,同時(shí)對(duì)于大數(shù)據(jù)的分析更需要了解到執(zhí)行速度,只有了解到執(zhí)行速度,即執(zhí)行所消耗的時(shí)間我們才好不斷地優(yōu)化算法,例如在使用到冒泡排序算法時(shí),若是整列逐一進(jìn)行排序,在資源充足的前提下,肯定沒有分組排序省時(shí),若逐一排序需要n,則分組排序只需要n/2,當(dāng)一位用戶在訪問過程中可能影響不大或不明顯,但是,當(dāng)有幾萬用戶同時(shí)訪問時(shí)可能相差的不只是幾分鐘,可能是幾十分或更多.對(duì)于互聯(lián)網(wǎng)時(shí)代的高速度發(fā),同時(shí)在這個(gè)大數(shù)據(jù)時(shí)間,對(duì)數(shù)據(jù)的挖掘是不斷地深入,云推薦,云搜索等,都是涉及到大量的數(shù)據(jù)計(jì)算,所以對(duì)于大項(xiàng)目程序執(zhí)行效率的分析尤其得要。
實(shí)現(xiàn)代碼如下:
$Stime=0;
$Etime=0;
$Ttime=0;
$Stime=microtime(true);//獲取程序開始執(zhí)行的時(shí)間
//echo $Stime."
";
for ($i=1;$i<=10000000;$i++){} //為了實(shí)現(xiàn)有一定的時(shí)間差,所以用了一個(gè)FOR來消耗一些資源.
$Etime=microtime(true);//獲取程序執(zhí)行結(jié)束的時(shí)間
//echo $Etime."
";
$Ttime=$Etime-$Stime;//計(jì)算差值
//echo $Ttime."
";
$str_total=var_export($Ttime,TRUE);
if(substr_count($str_total,"E")){ //為了避免1.28746032715E-005這種結(jié)果的出現(xiàn),做了一下處理.
$float_total=floatval(substr($str_total,5));
$Ttime=$float_total/100000;
}
echo $Ttime.'秒';
?>
百恒開發(fā)工程師在對(duì)相關(guān)函數(shù)進(jìn)行介紹:
microtime() 函數(shù)返回當(dāng)前 Unix 時(shí)間戳和微秒數(shù)。
var_export() 函數(shù)返回關(guān)于傳遞給該函數(shù)的變量的結(jié)構(gòu)信息,它和 var_dump() 類似,不同的是其返回的表示是合法的 PHP 代碼。
substr_count() 函數(shù)計(jì)算子串在字符串中出現(xiàn)的次數(shù)。
備注:南昌網(wǎng)站制作公司工程師提醒廣大開發(fā)人員:$Stime=microtime(true);要放在頁面的首要位置,$Etime=microtime(true);要放頁面的未位置,否則計(jì)算不出時(shí)間.
原創(chuàng)文章出自:百恒網(wǎng)絡(luò) 如轉(zhuǎn)載請(qǐng)注明出處!專業(yè),專注于南昌網(wǎng)站設(shè)計(jì),為用戶提供高品質(zhì)的網(wǎng)絡(luò)產(chǎn)品及優(yōu)質(zhì)服務(wù)是我們始終的追求.