應用程式效能分析

這個效能分析類別(Profiler Class)會顯示出 Benchmark 的查詢結果、然後將 $_POST 的資料置於頁面的尾端。這些資訊在進行開發時,用來協助除錯或是最佳化相當有用。

初始化類別

Important

這各類別不需要額外步驟將它初始化。他可由 Output 函式庫 自動載入,效能分析功能就會啟動並顯示結果在頁面尾端。

啟動效能分析器

控制器(Controller) 函數中,啟動效能分析器:

$this->output->enable_profiler(TRUE);

啟動之後,效能結果就會被產生出來放入頁面尾端。

關閉效能分析器的方式:

$this->output->enable_profiler(FALSE);

設定 Benchmark 點

為了使效能分析器去編譯以及顯示 Benchmark 資料,你一定標記 Benchmark 點。

請參考設定 Benchmark 點的分法 Benchmark 函式庫 頁面。

啟動和關閉效能分析器的區段

分析資料中的每個字段可通過設置相應的控制變數 TRUE or FALSE 來啟用和關閉。其中的一個方法是:你可以在 application/config/profiler.php 設定文件裡設置整個程序的全域預設值。

例子:

$config['config']          = FALSE;
$config['queries']         = FALSE;

你可以在控制器中通過呼叫 set_profiler_sections() 來複寫預設的設定,詳細參考: Output 函式庫

$sections = array(
        'config'  => TRUE,
        'queries' => TRUE
);

$this->output->set_profiler_sections($sections);

下表列出了可用的分析器資料字段和用來訪問這些字段的 key。

Key Description Default
benchmarks 在各個計時點花費的時間以及總時間 TRUE
config CodeIgniter 設定變數 TRUE
controller_info 被呼叫的方法以及所屬的控制器類別 TRUE
get 請求所傳遞的所有 GET 資料 TRUE
http_headers 本次請求的 HTTP 標頭 TRUE
memory_usage 本次請求所消耗的總記憶體空間,用 bytes 來計算 TRUE
post 請求所傳遞的所有 POST 資料 TRUE
queries 列出資料庫操作的語句以及消耗的時間 TRUE
uri_string 本次請求的 URI 字串 TRUE
session_data 本次的資料儲存在 session TRUE
query_toggle_count 在幾次資料庫語句執行,資料庫區塊預設為隱藏 25

Note

從資料庫設定檔中關閉 save_queries 設定將會有效關閉無用的資料庫’語句操作‘以及頁面呈現分析的消耗資源。你可以選擇性地複寫掉這個設定 $this->db->save_queries = TRUE; 。沒有這個設置,您將無法查看資料庫語句操作或者 last_query <database/helpers>