ThinkPHP3.2 G函数代码及 使用方法
生活随笔
收集整理的這篇文章主要介紹了
ThinkPHP3.2 G函数代码及 使用方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ThinkPHP3.2 G函數代碼及 使用方法
代碼:
// 內存是否可調用 define('MEMORY_LIMIT_ON',function_exists('memory_get_usage'));/*** 記錄和統計時間(微秒)和內存使用情況* 使用方法:* <code>* G('begin'); // 記錄開始標記位* // ... 區間運行代碼* G('end'); // 記錄結束標簽位* echo G('begin','end',6); // 統計區間運行時間 精確到小數后6位* echo G('begin','end','m'); // 統計區間內存使用情況* 如果end標記位沒有定義,則會自動以當前作為標記位* 其中統計內存使用需要 MEMORY_LIMIT_ON 常量為true才有效* </code>* @param string $start 開始標簽* @param string $end 結束標簽* @param integer|string $dec 小數位或者m* @return mixed*/ function G($start,$end='',$dec=4) {static $_info = array();static $_mem = array();if(is_float($end)) { // 記錄時間$_info[$start] = $end;}elseif(!empty($end)){ // 統計時間和內存使用if(!isset($_info[$end])) $_info[$end] = microtime(TRUE);if(MEMORY_LIMIT_ON && $dec=='m'){if(!isset($_mem[$end])) $_mem[$end] = memory_get_usage();return number_format(($_mem[$end]-$_mem[$start])/1024);}else{return number_format(($_info[$end]-$_info[$start]),$dec);}}else{ // 記錄時間和內存使用$_info[$start] = microtime(TRUE);if(MEMORY_LIMIT_ON) $_mem[$start] = memory_get_usage();}return null; }//blogurl:http://www.cnblogs.com/osfipin/
解說:
開發過程中,有些時候為了測試性能,經常需要調試某段代碼的運行時間或者內存占用開銷,系統提供了G方法可以很方便的獲取某個區間的運行時間和內存占用情況。 例如:
G('begin','end') 表示統計begin位置到end位置的執行時間(單位是秒),begin必須是一個已經標記過的位置,如果這個時候end位置還沒被標記過,則會自動把當前位置標記為end標簽,輸出的結果類似于:0.0056s
默認的統計精度是小數點后4位,如果覺得這個統計精度不夠,還可以設置例如:
可能的輸出會變成:0.005587s
如果你的環境支持內存占用統計的話,還可以使用G方法進行區間內存開銷統計(單位為kb),例如:
第三個參數使用m表示進行內存開銷統計,輸出的結果可能是:625kb
同樣,如果end標簽沒有被標記的話,會自動把當前位置先標記位end標簽。
如果環境不支持內存統計,則該參數無效,仍然會進行區間運行時間統計。
轉載于:https://www.cnblogs.com/osfipin/p/4279991.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的ThinkPHP3.2 G函数代码及 使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS推送小结--swift语言
- 下一篇: PHP5各个版本的新功能和新特性总结