基準(zhǔn)測試類
CodeIgniter 有一個總是有效的基準(zhǔn)測試類,能夠用來計(jì)算兩個標(biāo)記點(diǎn)的時間差.
注意:這個類會被系統(tǒng)自動初始化,因此不需要手動初始化.
另外,基準(zhǔn)測試類在框架被調(diào)用的時候開始,在最終視圖被output類送給瀏覽器之前結(jié)束,可以顯示整個系統(tǒng)執(zhí)行的精確定時.
目錄
- 使用測試基準(zhǔn)類
- 自定義你的測試基準(zhǔn)類
- 顯示總的執(zhí)行時間
- 顯示內(nèi)存消耗
使用基準(zhǔn)測試類
測試基準(zhǔn)類可以在 控制器, 視圖,或者 模型.中使用,用法如下:
- 標(biāo)記一個開始點(diǎn)
- 標(biāo)記一個結(jié)束點(diǎn)
- 運(yùn)行elapsed_time函數(shù)顯示結(jié)果
下面是一個代碼示例:
$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)測試類
如果你想你的基準(zhǔn)數(shù)據(jù)對評測有效,你的標(biāo)記點(diǎn)必須設(shè)置成對,并且每個標(biāo)記點(diǎn)必須用_start 和_end結(jié)束.每一對標(biāo)記點(diǎn)的前部必須相同.例如:
$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');
更多信息請參考 調(diào)試你的應(yīng)用程序 .
顯示總的執(zhí)行時間
如果你想顯示從CodeIgniter啟動到瀏覽器最終輸出的時間消耗,簡單把這段代碼放到你的一個視圖模板中:
<?php echo $this->benchmark->elapsed_time();?>
你會注意到這個函數(shù)和上面例子中計(jì)算兩個標(biāo)記點(diǎn)時間差的函數(shù)是同一個, 不同的是這里你沒有使用參數(shù).當(dāng)參數(shù)為空的時候,CodeIgniter一直會到最終頁面被送往瀏覽器之前才停止benchmark .它不管你是在哪里調(diào)用的,計(jì)時器會持續(xù)到最終結(jié)束.
如果不喜歡使用純PHP,另外一種備用的來顯示時間消耗的方式是在視圖文件中使用這個偽變量:
{elapsed_time}
注意:如果你想在你的控制器函數(shù)中benchmark(基準(zhǔn)測試)一些東西, 你必須設(shè)置你自己的開始/結(jié)束點(diǎn).
顯示內(nèi)存消耗
如果你的PHP在安裝的時候被配置成--enable-memory-limit,你可以將下面的代碼包含到視圖文件中顯示整個系統(tǒng)的內(nèi)存使用量:
<?php echo $this->benchmark->memory_usage();?>
注意:這個函數(shù)只能在視圖文件中使用.這個消耗量就是應(yīng)用程序的全部內(nèi)存消耗.
如果不喜歡使用純PHP,另外一種備用的來顯示內(nèi)存使用量的方式是在視圖文件中使用這個偽變量:
{memory_usage}
?