【CakePHP】App::importが遅い件(続編)

App::import関連でさらに調査してみたのですが、私の方で重大なミスをしていました。

とりあえず、歴代RCx版での比較をしてみましたので先に紹介します。

【共通設定】
・app/controllers/mypages_controller.phpとして、var $uses=array(),var function index(){}のみを設定したコントローラを作成。
・app/view/mypages/index.ctpとしてブランクファイルを作成。
・app/view/layouts/default.ctpとして、標準のdefault.ctpをベースにContent-type,title,content_for_layout以外の動的要素を取り除いたレイアウトファイルを作成。
・debug=0に設定
・上記設定を行ったあと、トップページにアクセスして動作確認。
・導入後、apacheサービスをrestart。
・ ab -n 1000 -c 100 http://hoge.com/mypages でベンチマーク実行。

【bootstrap.phpの変更】
各バージョンについて、bootstrap.php中のDispatcherの呼び出し部分を次のように変更。

RC1/RC2
App::import(‘Core’, array(‘Session’, ‘Security’, ‘String’, ‘Dispatcher’));
↓↓↓
App::import(‘Core’, array(‘Session’, ‘Security’, ‘String’));
App::import(‘Core’, ‘Dispatcher’, true, array(), ‘/path/to/cake/dispatcher.php’);

RC3
App::import(‘Core’, array(‘Dispatcher’));
↓↓↓
App::import(‘Core’, ‘Dispatcher’, true, array(), ‘/path/to/cake/dispatcher.php’);

【結果(3回中の平均)】
RC1
ノーマル:25.52req/sec
改造  :26.50req/sec

RC2
ノーマル:67.09req/sec
改造  :65.20req/sec

RC3
ノーマル:73.00req/sec
改造  :73.00req/sec

つまり結論から申しますと「debug=0での実行では、改造してもそれほど差がない」というわけです。
前回の記事では、debug=2のままで実行してしまい、それが原因で差がついたようです(逆に言えば、debug=2の時は改造した方が速い)。これについては、上記テストのあと、(RC3版のみですが)debug=2に修正して実行したところ、前回の記事とほぼ同じ結果が得られました。

もう少し冷静に検証すればこのようなミスはなかったので、申し訳ないです。

ただ、これで終わりというわけではなく、App::import周りのチューンナップは今後も必要と思われます。
当方でも引き続き調査しますので、何か発見がありましたらまた紹介させていただきます。