W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
CodeIgniter 有一個一直都是啟用狀態(tài)的基準(zhǔn)測試類,用于計算兩個標(biāo)記點之間的時間差。
注解
該類是由系統(tǒng)自動加載,無需手動加載。
另外,基準(zhǔn)測試總是在框架被調(diào)用的那一刻開始,在輸出類向瀏覽器發(fā)送最終的視圖之前結(jié)束。 這樣可以顯示出整個系統(tǒng)執(zhí)行的精確時間。
基準(zhǔn)測試類可以在你的 控制器、視圖 以及 模型 中使用。
使用流程如下:
這里是個真實的代碼示例:
$this->benchmark->mark('code_start');
// Some code happens here
$this->benchmark->mark('code_end');
echo $this->benchmark->elapsed_time('code_start', 'code_end');
注解
"code_start" 和 "code_end" 這兩個單詞是隨意的,它們只是兩個用于標(biāo)記 的單詞而已,你可以任意使用其他你想使用的單詞,另外,你也可以設(shè)置多個標(biāo)記點。
看如下示例:
$this->benchmark->mark('dog');
// Some code happens here
$this->benchmark->mark('cat');
// More code happens here
$this->benchmark->mark('bird');
echo $this->benchmark->elapsed_time('dog', 'cat');
echo $this->benchmark->elapsed_time('cat', 'bird');
echo $this->benchmark->elapsed_time('dog', 'bird');
如果你希望你的基準(zhǔn)測試數(shù)據(jù)顯示在 性能分析器 中, 那么你的標(biāo)記點就需要成對出現(xiàn),而且標(biāo)記點名稱需要以 _start 和 _end 結(jié)束, 每一對的標(biāo)記點名稱應(yīng)該一致。例如:
$this->benchmark->mark('my_mark_start');
// Some code happens here...
$this->benchmark->mark('my_mark_end');
$this->benchmark->mark('another_mark_start');
// Some more code happens here...
$this->benchmark->mark('another_mark_end');
閱讀 性能分析器 頁面了解更多信息。
如果你想顯示從 CodeIgniter 運行開始到最終結(jié)果輸出到瀏覽器之間花費的總時間, 只需簡單的將下面這行代碼放入你的視圖文件中:
<?php echo $this->benchmark->elapsed_time();?>
你大概也注意到了,這個方法和上面例子中的介紹的那個計算兩個標(biāo)記點之間時間差的方法是一樣的, 只是不帶任何參數(shù)。當(dāng)不設(shè)參數(shù)時,CodeIgniter 在向瀏覽器輸出最終結(jié)果之前不會停止計時,所以 無論你在哪里使用該方法,輸出的計時結(jié)果都是總執(zhí)行時間。
如果你不喜歡純 PHP 語法的話,也可以在你的視圖中使用另一種偽變量的方式來顯示總執(zhí)行時間:
{elapsed_time}
注解
如果你想在你的控制器方法中進行基準(zhǔn)測試,你需要設(shè)置你自己的標(biāo)記起始點和結(jié)束點。
如果你的 PHP 在安裝時使用了 --enable-memory-limit 參數(shù)進行編譯,你就可以在你的視圖文件中 使用下面這行代碼來顯示整個系統(tǒng)所占用的內(nèi)存大小:
<?php echo $this->benchmark->memory_usage();?>
注解
這個方法只能在視圖文件中使用,顯示的結(jié)果代表整個應(yīng)用所占用的內(nèi)存大小。
如果你不喜歡純 PHP 語法的話,也可以在你的視圖中使用另一種偽變量的方式來顯示占用的內(nèi)存大小:
{memory_usage}
classCI_Benchmark
mark($name)
參數(shù):
返回類型: void
設(shè)置一個基準(zhǔn)測試的標(biāo)記點。
elapsed_time([$point1 = ''[, $point2 = ''[, $decimals = 4]]])
參數(shù):
返回: Elapsed time
返回類型: string
計算并返回兩個標(biāo)記點之間的時間差。
如果第一個參數(shù)為空,方法將返回 {elapsed_time} 偽變量。這用于在視圖中 顯示整個系統(tǒng)的執(zhí)行時間,輸出類將在最終輸出時使用真實的總執(zhí)行時間替換掉這個偽變量。
memory_usage()
返回: Memory usage info
返回類型: string
只是簡單的返回 {memory_usage} 偽變量。
該方法可以在視圖的任意位置使用,直到最終輸出頁面時 輸出類 才會將真實的值替換掉這個偽變量。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: