2

データベースを呼び出さないCakePHPアプリケーションのページは、ロードに約4秒かかることがわかりました。これは、遅すぎます。

私は無駄に次のことを試みました:

  • コンピューターを再起動する
  • Uniserverの再インストール
  • デバッグレベルを2から0に切り替える
  • FileCacheからAPCキャッシュに切り替える

XDebugプロファイラーダンプを取得し、KCachegrindで、最も時間のかかる関数がphp :: session_startであり、\ webroot\index.phpによって呼び出されたことを確認しました。また、CakePHP Debug Kitを使用してパフォーマンスを確認したところ、最も時間のかかる項目は「コア処理($ _SERVER ["REQUEST_TIME"]から派生)」であることがわかりました。

ページの読み込みを高速化するにはどうすればよいですか?

私のハードウェアが関連している場合は、以下に動作環境について説明しました。

  • ThinkPad T400
  • Intel Core2Duoプロセッサー
  • OCZ SSD
  • 4 GB RAM
  • Windows764ビット版
  • CakePHPバージョン2.2.3

出発点として、php.iniの作業用コピーを、Uniserverが提供する製品版のphp.iniと比較したところ、次の大きな違いが見つかりました。

  • PHPエラーレベル(E_ALL、E_NOTICE、E_STRICTなど)
  • $php_errormsgロギング
  • mysqlnd.collect設定(これらのうちの2つ)
  • Xdebugを無効にする

次に、比較の前後にいくつか行いました。緑のセルは1秒未満の値です。これは、人間が何かを「かなり速い」と認識するための制限です。実際には、「インスタント」になるには0.1秒未満である必要があることを認識していますが、それは少し非現実的です。

CakePHPページを表示するために必要な処理時間の比較

(画像をフルサイズで表示するには、Windows SkyDrive(http://sdrv.ms/YomWdO )にアクセスしてください。)

php.iniの「After」バージョンで実行しているときにWebサイトアプリケーションを使用してみましたが、問題はありませんが、ほとんどのページを起動すると、特に一部のページをすぐに起動できる場合は、まだ道に迷っています。 。

4

3 に答える 3

1

セッション構成を確認し、セッション ストアが正しく設定されていることを確認してください。たとえば、データベースを使用している場合は、高速ネットワークまたはローカルで到達可能であること、およびユーザーが必要なすべての権限を持っていることを確認してください。セッションがファイル システムに存在する場合は、可用性と権限を確認してください。最後に、php の設定全般を確認してください。これは Cake の問題ではないようです。

于 2012-11-29T22:47:10.130 に答える
0

解決策は、次の設定を変更することです。

  • PHP エラー レベル (E_ALL、E_NOTICE、E_STRICT など)
  • $php_errormsg ロギング
  • mysqlnd.collect の設定 (2 つ目)
  • Xdebug を無効にする

次に、php.ini のコピーを切り替え続ける必要がないように、専用の運用サーバーを取得します。

最後に、それが十分にスピードアップせず、それが単なる個人的なプロジェクトである場合 (重要な個人的なプロジェクトかもしれませんが)、あきらめて人生を歩んでください。

于 2013-01-23T23:22:43.987 に答える
-1

ファイルcore.phpを編集することで解決された同じ問題

Configure::write('debug', 2);に変更Configure::write('debug', 0);

つまり2対0

パス: app/config/core.php

于 2014-11-04T12:07:17.473 に答える