• 締切済み

cakephp2とsmartyの表示が遅い

cakephp2.4とsmarty3でcms開発を行ってます。初期アクセス時の表示がすごく遅く何か原因わかる方いましたらご回答宜しくお願いします。 二回目以降、またはあまり時間を開けずアクセスすると早いです。この場合、ブラウザのキャッシュを削除してもそこまで遅くはありません。 しかし、数時間後に再度アクセスすると、また遅いです。 beforeRenderでexitかけてもレスポンス悪くない為、コントローラのDBやPHPの処理側ではなく、View(smarty)に問題があるのかな?と感じています。 何かわかる方や、アドバイスあるかたお願い致します。

  • PHP
  • 回答数4
  • ありがとう数11

みんなの回答

  • foreach
  • ベストアンサー率51% (43/84)
回答No.4

普通にbakeして生成したコードだとどうでしょう? もし普通の速度であればSmartyが問題だと切り分けられるはずです。 自作なのかgithubとかから拾ってきたのか分かりませんが、何かしらのヘルパー等を使ってSmartyでレンダリングさせてると思いますが、その処理が失敗してて重くなってる可能性は考えられませんか? あくまでも個人的な意見ですが、CakeとSmartyを組み合わせるのは辞めたほうが良いと思います。

  • ONEONE
  • ベストアンサー率48% (279/575)
回答No.3

申し訳ないですがこれ以上はちょっとわからないですね。 実装というよりはサーバの設定な気がします。 結構埋れてしまったので再質問してはいかがでしょう

  • ONEONE
  • ベストアンサー率48% (279/575)
回答No.2

実際何秒かかってますか? http://stackoverflow.com/questions/13618622/cakephp-pages-slow-to-load-due-to-phpsession-start よくわかりませんか、どうやらセッションあたりのチューニングのせいらしい? 設定を見直されてみては。 ログファイルの肥大化はないですかね? HTTPステータスコードは二回目以降は304でしょうか? もしくはdebug 0にして本番でパフォーマンスを確認したらどうなりますか? debug 0で速いようでしたら、検証ようのプログラムが初期のみ重いということになりますね。

bgbwq712
質問者

補足

>実際何秒かかってますか? 画像貼ったんですが、わかりずらいですね。cakeのdebugkitの数値を記載します。 それとサーバーですが、事情があり共用サーバーのCGIモードで動かしています。 fastCGIを導入していますがそのあたりも何か関係しますでしょうか? 1回目=> total request time・・・15624(ms) Core Processing (Derived from $_SERVER["REQUEST_TIME"])・・・3942.82(ms) Event: Controller.initialize・・・704.48(ms) Event: Controller.startup・・・37.90(ms) Controller action・・・4532.53(ms) Event: Controller.beforeRender・・・66.31(ms) » Processing toolbar data・・・66.05(ms) Rendering View 38.63・・・3724.98(ms) » Event: View.beforeRender・・・0.09(ms) » Event: View.afterRender・・・0.11(ms) » Event: View.beforeLayout・・・0.10(ms) Event: View.afterLayout・・・0.00(ms) 2回目=> total request time・・・1810(ms) Core Processing (Derived from $_SERVER["REQUEST_TIME"])・・・749.57(ms) Event: Controller.initialize・・・26.06(ms) Event: Controller.startup・・・1.12(ms) Controller action・・・285.98(ms) Event: Controller.beforeRender・・・13.89(ms) » Processing toolbar data・・・13.51(ms) Rendering View 38.63・・・643.98(ms) » Event: View.beforeRender・・・0.11(ms) » Event: View.afterRender・・・0.08(ms) » Event: View.beforeLayout・・・0.07(ms) Event: View.afterLayout・・・0.00(ms) >もしくはdebug 0にして本番でパフォーマンスを確認したらどうなりますか? debug 0で速いようでしたら、検証ようのプログラムが初期のみ重いということになりますね。 こちらdebug0で実行させてみましたが、時間がたってから1回目は遅く変わりませんでした。 セッションあたりのチューニングですが、ちょっと調べてみましたが今の所良くわかりません。

  • ONEONE
  • ベストアンサー率48% (279/575)
回答No.1

debugkitは入れていますか? sqllogや実行時間が見れるので便利ですよ。 cakeは無駄にSQL投げてたりするのでその辺り確認されては。

bgbwq712
質問者

お礼

ご回答ありがとうごいます! 早速試したいと思います!余地あるものは全て為そうと思いますので何かあればまた、宜しくお願いします。

bgbwq712
質問者

補足

初期アクセス時のみ、Core Processing (Derived from $_SERVER["REQUEST_TIME"])がいように遅いのですが、これはなんでしょうか? 続けてアクセスすると早いです。

関連するQ&A

  • CakePHP + Smarty でJQuery

    はじめまして、CakePHP2.1 + Smarty 3.1で開発を行なっている者です。 View側でJQueryを使いたいな~と思ったのですが、View側での呼び出し方法、具体的な使い方などご存知の片いらっしゃいましたら、是非教えて下さい。 jsファイルはwebroot/js/に入れてあります。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • cakephpのビューの使い方

    cakephpのビューの使い方 windowsxp環境にxamppをインストール php:5.3.1 cakephp:1.2.6 書籍を読みながらcakephpを始めました。 フォームを利用するサンプルを試しています。 コントローラーで変数に値をセットし ビューでの変数の表示方法の記述がよくわかりません。 コントローラで $this->set("result",$result); とし ビューctpで <html> <body> <h1>送信結果</h1> <p><?=$result ?></p> </body> </html> と記述されているのですが、ブラウザには変数が表示されません。 <?php echo $result ?>と書けば表示されるのですが <?=$result ?>という書き方ですとなにも表示されません。 どなたかアドバイスをいただけると助かります。 作成日: 2010年4月2日(金) 21時05分

    • ベストアンサー
    • PHP
  • cakePHPを自分の現状ではいかに学ぶべきか?

    PHPは、オブジェクト指向以外はひと通りわかります。 オブジェクト指向は見たり少しいじったりという程度でしたらわかりますが、1から作ることはきついレベルです。 で、cakePHP2.xを勉強しはじめているのですが、CookBook(日本語版)を読んでCookBookにあるとおりのブログをつくるところまではできました。 ですが、CakePHPの概要の次(コントローラ)以降になって、急に、かなり理解するのに時間がかかっています。 MVC自体については、昔Smartyを個人的に使っていたので、Smartyでウェブ構築ができる程度にはわかります。 が、cakaやzendのようながっしりしたフレームワークに取り組むのはこれがはじめてです。 (PHP以外にも) このような状態なのですが、このままCookbookを進めていくよりも、効率的な方法はありますでしょうか? 現状だと、Cookbookでわからない部分を毎回毎回ぐぐって、相当時間がかかっています。 本にたよろうかとも思ったのですが CakePHP2 実践入門 (WEB+DB PRESS plus) [単行本(ソフトカバー)] http://www.amazon.co.jp/dp/4774153249/ Webアプリ開発を加速する CakePHP2定番レシピ119 [単行本] http://www.amazon.co.jp/dp/4798039519/ が定番っぽいですが、 ユーザレビューを読むと、評価がわかれていて、 こういう状況の自分にとってどうなのか迷ってしまいます。 今後どのように学んでいったらいいでしょうか? とりあえずcookbookをざっと、理解できなくてもざーっと読んでしまい、 「定番レシピ119」にのっとって組んでみて、Cookbookに戻る。。。。というのはどうでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • CakePHPでヘルパーが使えません

    CakePHPを使用して開発を行っています。 app/views/helpers/common_lib.php に、class CommonLibHelper extends AppHelper としてヘルパークラスを作り、コントローラーの$helpersにarray('CommonLib')を記述しました。 ビューファイルにて、$common_lib->function() として、ヘルパーで定義したメソッドを呼ぶと、 undefined variable: common_libと言われてしまいます。どうしてか教えていただけませんか? クラス名やファイル名は合っていると思うのですが・・・。 CakePHPのバージョンは、1.3.6です。

    • ベストアンサー
    • PHP
  • cakephpの命名規則について

    cakephp初心者です。 cakephpはテーブル名、モデル名、コントローラ名、ビュー名、が規則によって付けられますが、 複数人で開発する場合、 同じテーブルを参照しようとすると、同じ名前のビューフォルダなどが出来てしまうのではないですか? テーブル名:users モデル名:User コントローラ名:UsersController ビューフォルダ:Users   ビューファイル:index.ctp usersテーブルを参照する場合、みんな同じコントローラ名、そして、ビューフォルダ名になると思うのですが、 どうやって別々のページを作っていくのですか? 上手く質問出来ていませんし、勉強不足だとは承知しています。 どうしてもCakePHPに苦戦しています。 開発の進め方を出来るだけ分かりやすく説明して頂けると嬉しいです。

    • ベストアンサー
    • PHP
  • cakePHPについて

    現在PHPを学び中の初級者です。 最近になりcakePHPというフレームワークがあることを知りました。 そこで質問なのですが (1)これからphpを学習していくにあたって、cakePHPを学習していくか、フレームワークなどを頼らずゼロから学習するのどちらがいいのでしょうか? ちなみに一応基本的なことは一通り学習しました。 (2)実際に開発をされている方にお聞きしたいのですが、 ・cakePHPなどのフレームワークを主に活用している。 ・ゼロからの手打ちでしている。だと開発する際はどちらが多いでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • CakePHPでディレクトリ分けをしたい

    CakePHP2.3.4、サーバーはロリポップにて開発を行っております。 やりたいことは、コントローラーのディレクトリ分けです。 以下のようなディレクトリ構造にして、 app  |_Controller  |   |_admin  |    |    |_LoginController.php  ※メソッドはindex()のみと仮定  |    |    |_・・・.php  |    |  |    |_ListController.php  ※メソッドはindex()のみと仮定  |  |_View ※Viewも分けますが、今は省略しています。 アプリケーション「LoginCntroller.php」にアクセスする場合は http://○○.ne.jp/admin/login/index アプリケーション「ListController.php」にアクセスする場合は http://○○.ne.jp/list/index でアクセスしたいです。 自分なりに調べて、「bootstrap.php」に以下追加、 App::build(array(  'Controller' => array(ROOT.DS.APP_DIR.DS.'Controllers'.DS.'Admin'.DS,) )); 「route.php」に以下追加、 Router::connect('/admin/login', array('controller' => 'login', 'action' => 'index')); などと行ってみてはいるのですが、結果、以下のエラーになってしまいます。 Missing Controller Error: AdminController could not be found. Error: Create the class AdminController below in file: app/Controller/AdminController.php <?php class AdminController extends AppController { } Controller直下に配置したアプリケーションに関しては問題なく実行されます。 何が悪いのか見当もつかず困っております。 よろしければご教授いただけませんでしょうか。

    • 締切済み
    • PHP
  • smartyのページキャッシュについて

     例えば動的に表示するページにおいて、DBへ登録処理が行われた時に同時にsmartyでページキャッシュを作成するということを実現したいのですが、ページキャッシュを作成する方法は、キャッシュの有効期限を設定する方法しかないのでしょうか?  こうすることで、一部の動的ページを静的と同じ速度で表示できるのかなと考えているのですが、ご存知の方よろしくお願いします。  PHP5.1.1  smarty2.6.5

    • 締切済み
    • PHP
  • cakephpのデフォルトのページ設定

    cakephp初心者です。 色々なサイトのインストール手順を見て、 apacheでドキュメントルートを設定した、 /var/www/html/cakephpとして、cakephpのファイルを配置しました。 ブラウザからアクセスすると http://localhost/cakephp/自分の作成したディレクトリ というアクセス方法になります。 今は自宅の仮想サーバに入れていますが、もし外部のサーバに入れてドメイン名がついた場合、 http://ドメイン名/cakephp になってしまいますよね? http://ドメイン名 で、/var/www/html/cakephpにアクセスできるようにするには、 どのようにしたらいいのでしょうか。 現在、 http://ドメイン名 を打つと、cakephpのデフォルトの Release Notes for CakePHP 2.5.8. がタイトルのページが表示されています。 ここをデフォルトのページではなく、こちらで用意したViewのctpファイルを表示させてControllerで制御したいのです。

    • 締切済み
    • PHP
  • Smartyの設置について教えてください。

    お名前.COMにて提供しているVPSサーバプランについてですが、どなたかSmartyを設置された方いらっしゃいますか? いつもの通りユーザ階層にSmartyフォルダを設置し、一通りの事を行って、いざアクセスするもページが真っ白で表示されません。 エラーログを見ても普通にSmarty.classには到達しているようで、何が原因なのかわかりません(泣) てすとで通常のPHPページを作成し、現在の日時を表示するよう書き込んでアップしてみましたところ、普通に表示されるので普通にPHPは使えるんだなって感じです。 では、なぜSmartyだけうまく表示できないのでしょうか? 恐らく私の基本的なミスが原因だと思いますが、一応どなたか設置経験のある方がいましたら、設置内容を改めて教えていただければと思います。 どうぞ、宜しくお願いします。 ちなみに設置階層は下記の通りです。 /httpdocs/Smarty/libs/Smarty.class.php /httpdocs/data/cache /httpdocs/data/configs /httpdocs/data/templates /httpdocs/data/templates_c また、トップにあたるindex.phpの中は以下の通りです。 <?php require_once('./Smarty/libs/Smarty.class.php'); $smarty = new Smarty(); $smarty->template_dir = './data/templates/'; $smarty->compile_dir = './data/templates_c/'; $smarty->config_dir = './data/configs/'; $smarty->cache_dir = './data/cache/'; $smarty->display('index.tpl'); ?> アドバイスで構いませんので宜しくお願いします。

    • 締切済み
    • PHP

専門家に質問してみよう