この問題についてしばらくの間 Google で検索しましたが、スクリプトや画像などの外部リソースの読み込み速度ではなく、Joomla の速度について説明している記事が 1 つも見つかりません。私の Apache + PHP セットアップは非常にうまく機能しています。圧縮が有効になっており、ローカル仮想マシンを使用して実行しています。問題はサーバー側の Joomla にあり、そのソースを追跡する方法がわかりません。
私のローカル Joomla セットアップのページは、読み込みに常に2 ~ 3 秒かかります。Chrome デベロッパー ツールの [ネットワーク] タブによると、ブラウザは HTML ページを約 2 秒間待機し、その後、約 0.3 秒ですべての外部リソースを読み込みます。これは、管理者ページであっても、すべてのページに当てはまります。これは、リンクをクリックするたびにかなり長い待ち時間が続くため、非常に苛立たしいページサーフィンにつながります. 説明のために、読み込み速度グラフのスクリーンショットを次に示します。青い線は HTML ページです。
リクエストごとに 2 秒の処理が必要な Joomla とは何ですか? Joomla はこれだけ遅いのでしょうか、それとも私のセットアップに何か問題があるのでしょうか? もしそうなら、どうすればデバッグできますか?
私が試したこと
- Joomla のセットアップとは完全に別の PHP ページを作成し、
<?php phpinfo(); ?>
すべての PHP スクリプトが 2 秒の遅延の影響を受けないことを確認するためだけにそれを埋めました。そうではありません。 - 「127.0.0.1」と「localhost」の両方でローカル MySQL サーバーに接続し、Joomla データベース内のすべてのテーブルを出力する小さな PHP スクリプトを作成して実行しました。スクリプトはほんの一瞬で実行されるため、データベースへの接続時に DNS の問題が発生することはありません。
フロントページをロードするための Joomla プロファイル情報:
アプリケーション 0.000 秒 (+0.000); 0.81 MB (+0.807) - afterLoad アプリケーション 0.217 秒 (+0.217); 2.29 MB (+1.479) - 初期化後 アプリケーション 0.296 秒 (+0.079); 4.34 MB (+2.055) - afterRoute アプリケーション 0.640 秒 (+0.345); 5.59 MB (+1.247) - afterDispatch アプリケーション 0.705 秒 (+0.065); 5.85 MB (+0.266) - beforeRenderModule mod_menu (メインメニュー) アプリケーション 0.774 秒 (+0.069); 5.91 MB (+0.053) - afterRenderModule mod_menu (メインメニュー) アプリケーション 0.774 秒 (+0.000); 5.90 MB (-0.009) - beforeRenderModule mod_menu (すべてのフロント エンド ビュー) アプリケーション 1.004 秒 (+0.229); 6.05 MB (+0.147) - afterRenderModule mod_menu (すべてのフロント エンド ビュー) アプリケーション 1.004 秒 (+0.000); 6.03 MB (-0.016) - beforeRenderModule mod_menu (ユーザーメニュー) アプリケーション 1.035 秒 (+0.032); 6.05 MB (+0.021) - afterRenderModule mod_menu (ユーザーメニュー) アプリケーション 1.036 秒 (+0.000); 6.04 MB (-0.010) - beforeRenderModule mod_menu (ディープ メニュー) アプリケーション 1.058 秒 (+0.023); 6.06 MB (+0.017) - afterRenderModule mod_menu (ディープ メニュー) アプリケーション 1.059 秒 (+0.000); 6.05 MB (-0.010) - beforeRenderModule mod_menu (当サイト) アプリケーション 1.092 秒 (+0.034); 6.06 MB (+0.014) - afterRenderModule mod_menu (当サイト) アプリケーション 1.092 秒 (+0.000); 6.05 MB (-0.013) - beforeRenderModule mod_login (ログインフォーム) アプリケーション 1.116 秒 (+0.024); 6.07 MB (+0.023) - afterRenderModule mod_login (ログインフォーム) アプリケーション 1.116 秒 (+0.000); 6.07 MB (-0.002) - beforeRenderModule mod_breadcrumbs (ブレッドクラム) アプリケーション 1.143 秒 (+0.027); 6.09 MB (+0.021) - afterRenderModule mod_breadcrumbs (ブレッドクラム) アプリケーション 1.143 秒 (+0.000); 6.09 MB (-0.003) - beforeRenderModule mod_menu (トップ) アプリケーション 1.179 秒 (+0.035); 6.12 MB (+0.028) - afterRenderModule mod_menu (トップ) アプリケーション 1.179 秒 (+0.000); 6.10 MB (-0.012) - beforeRenderModule mod_search (検索) アプリケーション 1.207 秒 (+0.028); 6.13 MB (+0.028) - afterRenderModule mod_search (検索) アプリケーション 1.236 秒 (+0.029); 6.15 MB (+0.014) - afterRender
「afterInitialise」、「afterDispatch」、および「afterRenderModule mod_menu (すべてのフロント エンド ビュー)」の手順には、それぞれほぼ 3 分の 1 秒かかることに注意してください。これらの各ポイントは、スクリプト全体の実行を受け入れるよりも長く実行されます。それらを減らす方法についての手がかりはありますか?
この質問がすぐに閉じられないほど具体的であることを願っています。より具体的にするために私にできることがあれば、コメントしてください。