效能測試類別¶
CodeIgniter擁有一個常駐的效能測試類別,能夠計算出兩個標記位置間的執行時間。
Note
這個類別會由系統建立,所以不需要使用者自行建立
除此之外,效能測試總是會於框架觸發時開始執行,並且於輸出頁面前結束,能夠取 得一個非常準確的系統執行時間。
使用效能測試類別¶
效能測試類別可用於 controllers, views, 或是你的 models. 使用的順序為:
- 標記一個起始點
- 標記一個結束點
- 執行 “elapsed time” 函數取得執行時間
範例:
$this->benchmark->mark(‘code_start’);
// 程式碼於這裡執行
$this->benchmark->mark(‘code_end’);
echo $this->benchmark->elapsed_time(‘code_start’, ‘code_end’);
Note
“code_start” 和 “code_end” 是可以任意命名的. 他們只是兩個作為 標記識別的名稱。你可以使用所有你想使用的單字,並建立多組標記點。 範例:
$this->benchmark->mark('dog');
// 程式碼於這裡執行
$this->benchmark->mark('cat');
// 更多程式碼於這裡執行
$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');
分析效能測試結果¶
如果你希望將你的效能測試數據用於 Profiler 所有的標記點都必須成對設置,而且標記點的名稱必須相同,並以 _start 和 _end 結尾。 範例:
$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');
請參考 Profiler page 獲得更多資訊
類別參考¶
-
class
CI_Benchmark
¶ -
mark
($name)¶ Parameters: - $name (string) – 標記名稱
Return type: void
設置標記
-
elapsed_time
([$point1 = ''[, $point2 = ''[, $decimals = 4]]])¶ Parameters: - $point1 (string) – 起始標記名稱
- $point2 (string) – 結束標記名稱
- $decimals (int) – 小數點位數
Returns: 經過的時間 :rtype: string 計算並回傳兩個標記點間的執行時間。
如果第一個參數為空,這個函數會回傳
{elapsed_time}
虛擬函數。這讓完整的系統執行時間能在樣板中顯示。 The output class will swap the real value for this variable.-
memory_usage
()¶ Returns: 記憶體用量資訊 Return type: string
回傳
{memory_usage}
This permits it to be put it anywhere in a template without the memory being calculated until the end. The Output Class will swap the real value for this variable.-