0

何年も前に、私は最初の PHP ページをゼロから作成しました (ニュース サイト)。やり直しを検討しており、再設計を開始しましたが、ページの速度に問題があるため、いくつか質問があります。

  1. PHP のどこにボトルネックがあるかを判断するには、どのツールを使用できますか?
  2. ページは動的ですが、数時間ごとにしか変更されません。プロセスを高速化できる可能性のある、使用するのに最適なシンプルなツール (VPS は持っていますが、複数のサイトがあります) は何ですか?
4

2 に答える 2

0

私が住んでいるルールはややあります。

  1. 多数のJavaScriptがある場合は、それらを1つの大きなJavaScriptにマージします。サーバーへのストレスを軽減し、クライアントが実際のペイロードの画像などを配信するためのアイドル要求を解放します。
  2. 多数のスタイルシートがある場合は、スニフに依存しないものをマージします(media = "all"であり、'if lte IE7'などではありません)。上記と同じメリット。この手法は、gzipのオーバーヘッドも削減します
  3. 高密度のmysqlクエリがある場合は、HTMLを生成します-.htmlファイルをサーバーディレクトリにスタックします。単にinclude 'cache/pageid.html';または同様のもので、それらを利用してください。出力バッファをメモリに入れることは、RAMの膨大な消費です。
  4. 画像の数を減らし、シートにマージできるすべてのもの(多くの場合CSS内)を減らします。
  5. 詳細には、「static.mydomain.tld」を作成してみてください。これは、1つの単純なhttp-cache-directiveを持つCookieのないドメインである必要があります。有効期限が切れます。これにより、おそらく1kを超えるのではなく、120バイト未満のpr-request-headerが残る可能性があります。

私のアイテム4は、その目標を達成するために実際には多くのツールを必要としません。私は単に次のようなラッパー関数を作成します。

  function writePageContents($cachefile) {
    $maxage = time() - 60*60; // one hour
    if($maxage < filemtime($cachefile)) return file_get_contents($cachefile);
    else return createPageFromDb();
  }

したがって、キャッシュ可能なすべてのスクリプトとスタイルシートを含む要約ヘッダーを作成し、「cdn」からそれらを提供します。すべてのメタを右下に置きます-ヘッダーを閉じてからflush()

次に、キャッシュを再作成する必要があるかどうかを検討します。そうでない場合は、ディスクからローカルストレージを含めるだけです。

于 2012-09-02T11:32:49.807 に答える
0

You can use memcache for time-based in-memory stoarage.
Use Explain statement to determine the efficiency of your mysql query.
If there are large number of images on page you can use lazy loading technique and
sprite technology.
Include your javascript files at the end of body tag.
For more information check out this link
http://developer.yahoo.com/performance/rules.html
Thanks

于 2012-09-02T11:08:37.867 に答える