Modelを2個以上読み込む場合は、$usesを使わない方がスピードアップする

CakePHPのスピードアップTIPs。
http://www.pseudocoder.com/archives/2009/04/16/one-more-tip-for-speeding-up-cakephp-apps/


コントローラの中で、$usesでモデルをいくつも書いておけば、
$this->Model1->find();
$this->Model1->Model2->find();
みたいにして快適にモデルにアクセスできるのですが、この$usesの配列にモデル名を加えていくと、一つにつき、4-6%表示時間が多くかかるとのこと。試しに7モデルを$usesで読み込むようにしたら、40%も表示時間が増えたそうです (追記:たぶんこの比較は、あるアクションで使うモデルが1つだった場合に、$usesで7モデル定義した場合と、$usesには何も定義せず、該当アクション内で1つのモデルだけloadModelした場合で比較してるっぽい)


コントローラでは、必要な個所で下記のようにモデルを呼び出すのが良いそうです。

$this->loadModel('Comment');
$comments = $this->Comment->findAllByPostId($id);

loadModelの他に、ClassRegistry::initを使う方法もあるけど、$usesで定義した方法と同じように$this->Modelでアクセスできるから、そっちの方が良いいかも。


それと、下記のメーリングリストの中で、モデルを読み込む場合は、App::import()はお勧めしないと書いてあります。
http://groups.google.com/group/cake-php/msg/794c451038c0c798