性能調試
開發過程中,有些時候為了測試性能,經常需要調試某段代碼的運行時間或者內存占用開銷,系統提供了think\Debug類可以很方便的獲取某個區間的運行時間和內存占用情況。 例如:
Debug::remark('begin');
// ...其他代碼(ma)段(duan)
Debug::remark('end');
// ...也許(xu)這(zhe)里還(huan)有(you)其他(ta)代碼
// 進行統計區(qu)間(jian)
echo Debug::getRangeTime('begin','end').'s';
表示統計begin位置到end位置的執行時間(單位是秒),begin必須是一個已經標記過的位置,如果這個時候end位置還沒被標記過,則會自動把當前位置標記為end標簽,輸出的結果類似于:0.0056s
默認的統(tong)計精度是小數點后4位(wei),如果覺(jue)得這(zhe)個統(tong)計精度不(bu)夠,還可以設(she)置例如:
echo Debug::getRangeTime('begin','end',6).'s';
可能的輸出會變成:0.005587s
如果你的環境支持內存占用統計的話,還可以使用getRangeMem方法進(jin)行(xing)區間內存開(kai)銷(xiao)統(tong)計(ji)(單位(wei)為kb),例如:
echo Debug::getRangeMem('begin','end').'kb';
第三個參數使用m表示進行內存開銷統計,輸出的結果可能是:625kb
同樣,如果end標(biao)簽沒有被標(biao)記的話,會自動把當前(qian)位置先(xian)標(biao)記位end標(biao)簽。
助手函數
系統還提供了助手函數debug用(yong)于完(wan)成(cheng)相(xiang)同的作用(yong),上面(mian)的代碼可(ke)以改(gai)成(cheng):
debug('begin');
// ...其他(ta)代碼段
debug('end');
// ...也許這里(li)還有其他代(dai)碼
// 進行統計區間(jian)
echo debug('begin','end').'s';
echo debug('begin','end',6).'s';
echo debug('begin','end','m').'kb';
文檔最后更新時間:2018-04-26 10:43:17
未解決你的問題?請到「問答社區」反饋你遇到的問題
