Home > CakePHP | PHP > CakePHP debug=0とdebug=2ではパフォーマンスがかなり違う

CakePHP debug=0とdebug=2ではパフォーマンスがかなり違う

この記事の所要時間: 048

CakePHPでは動作レベルをConfigure::write(‘debug’, N)で設定できるのですが、この値によってかなりパフォーマンスが変わります(特にフレームワークの起動)。

パフォーマンスを調べる時は実際に運用する環境に合わせた設定をして計測しましょう、という話です。

計測対象

CakePHP1.2のリポジトリ[rev:7706]で、DB接続無しで単にビューを出力するだけのコントローラで計測しました。

実行時間とステップ数は、xdebug.auto_trace=Onで調べています。

[app/config/core.php]

Configure::write('debug', 0);
or
Configure::write('debug', 2);

[app/controllers/top_controller.php]

<?php
class TopController extends AppController {
  public $uses = array();

  public function index() {
  }
}
&#91;/php&#93;
<p>[app/views/to/index.ctp]</p>

TopController

計測結果

※debug=0はキャッシュを効かせるため、1回目のリクエストは無視

debug 実行時間(s) ステップ数
2 3.0879 25301
0 0.6376 2803

debug=0はdebug=2に比べて圧倒的に早くなっています(5倍!)。また目安ではありますが、ステップ数が1/10になっています。

これはdebug=0では内部的にキャッシュを利用していることが大きく作用しています。

このキャッシュはdebug=2でも動作しているのですが、キャッシュ期間が短い(10s)ので、あまり恩恵を受けることができません。もちろんdebug=2(debug>0)は開発用なので、キャッシュが効かなくなっているのは正しい動作と言えます。

パフォーマンス計測はdebug=0で

通常、運用に入る場合はdebug=0に設定するので、本稼働システムのパフォーマンスを計測したい場合はdebug=0で計測するべきでしょう。

Pocket

follow us in feedly

トラックバック:0

このエントリーのトラックバックURL
/blog/2008/10/cakephp_performance_debug_0_2.html/trackback
Listed below are links to weblogs that reference
CakePHP debug=0とdebug=2ではパフォーマンスがかなり違う from Shin x blog

Home > CakePHP | PHP > CakePHP debug=0とdebug=2ではパフォーマンスがかなり違う

検索
フィード
メタ情報

Return to page top