Symfoware

Symfowareについての考察blog

CodeIgniter 3 アプリケーションのプロファイル、ベンチマーク(General Topics - Profiling Your Application)

CodeIgniter User Guide

General TopicsのProfiling Your Applicationについて調べてみます。
Profiling Your Application



Profiling Your Application



プロファイルクラスは、ベンチマークの結果を画面に表示してくれます。
この情報は、開発時のデバッグや最適化に有用な内容です。



Initializing the Class



クラスは自動的にロードされるので、初期化は必要ありません。



Enabling the Profiler



プロファイラーを有効にするには、コントローラーのメソッドで
以下のように指定します。


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



表示された画面の下部にプロファイルの内容が表示されます。


逆にプロファイル結果を表示したくない時はFALSEを指定します。


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






Setting Benchmark Points



ベンチマークを取りたい箇所を指定することができます。
これはベンチマークライブラリの項目で解説されているようです。




Enabling and Disabling Profiler Sections



プロファイラーで表示する項目を有効にするには、2つの方法があります。
ひとつは、application/config/profiler.phpにプロファイルを
表示したい項目を指定すること。


  1. $config['config']         = FALSE;
  2. $config['queries']         = FALSE;




もうひとつは、コントローラーのメソッドで、set_profiler_sectionsを
用いて指定する方法です。


  1. $sections = array(
  2.         'config' => TRUE,
  3.         'queries' => TRUE
  4. );
  5. $this->output->set_profiler_sections($sections);





指定可能なオプションは以下のとおり。


KeyDescriptionDefault
benchmarksベンチマークポイントと総実行時間の経過時間TRUE
configCodeIgniterのconfigの内容を表示TRUE
controller_infoコントラーのクラスとメソッドTRUE
getリクエストで渡されたGETデータTRUE
http_headersHTTPヘッダーの情報TRUE
memory_usageリクエストの処理に使用したメモリ(バイト)TRUE
postリクエストで渡されたPOSTデータTRUE
queriesデータベースの処理に必要だった時間TRUE
uri_stringURI文字列TRUE
session_dataセッションに保存されたデータTRUE
query_toggle_countブロックを初期状態で非表示にするクエリの数25


※最後の「query_toggle_count」の意味がよくわからないです。





使ってみる



どんな表示になるか使ってみます。


  1. <?php
  2. class Sample extends CI_Controller {
  3.     
  4.     public function index() {
  5.         
  6.         // プロファイルテスト
  7.         $this->output->enable_profiler(TRUE);
  8.         $this->load->view('sample');
  9.     }
  10.     
  11. }




こりゃすごい。
デバッグ時にほしい性能情報が表示されます。

539_01.png



試しにデータベースに問い合わせを行ってみます。

CodeIgniter 3のチュートリアル2 News section
ここで作ったモデルが残っていたので、適当に検索してみます。


  1. <?php
  2. class Sample extends CI_Controller {
  3.     
  4.     public function index() {
  5.         
  6.         // プロファイルテスト
  7.         $this->output->enable_profiler(TRUE);
  8.         $this->load->view('sample');
  9.         
  10.         // 無駄にクエリを実行してみる
  11.         $this->load->model('news_model');
  12.         $this->news_model->get_news();
  13.     }
  14.     
  15. }




実行したSQL文も表示されました。

539_02.png

便利。



CodeIgniter 3のユーザーガイド(User Guide)まとめ



関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2015/01/29(木) 00:21:56|
  2. PHP
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<CodeIgniter 3 コマンドラインからの実行(General Topics - Running via the CLI) | ホーム | CodeIgniter 3 ページキャシュについて(General Topics - Web Page Caching)>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1614-029661ed
この記事にトラックバックする(FC2ブログユーザー)