最適化の際に覚えておくべき最も重要なルール:早すぎる最適化はすべての悪の根源です。
最適化のヒント
明確なコードは最適化よりも99%優れています
- 非常に頻繁に、あなたが書いたコードは他の誰かによって使用され、あなたのコードを理解するのにかかる時間は非常に重要です
- 別のクラスの下に別のファイルを作成してみてください
はい、require(include、require_once、include_once)の数を増やしますが、特定のクラスを見つけることは何倍も簡単です。 - クラスと変数に短い名前を使用しないでください。
変数$ aの代わりに変数$ aを指定すると、速度の向上はばかげたものになりますが、コードの理解が急激に低下し、エラーをキャッチするのが難しくなります。 - 速度が本当に重要な場合は、本番用のコードの単純なスクリプトコンパイラを記述します(PHPのコンパイルの方向を調べることもできます)。
ただし、この場合、プロダクションで問題が発生すると、デバッグが難しくなります(たとえば、変数の名前を置き換えた場合)
いくつかの単純なクエリは、複雑なものよりも簡単にキャッシュできます
- いくつかの単純なクエリからデータをダンプする方が、複雑なものよりはるかに簡単です
たとえば、コメントでユーザーに関する情報を取得するには(ニックネームを描画する場合)、ユーザーテーブルにJOINするよりも、個別の要求(もちろん、キャッシュする)を行う方が簡単です。 - 大幅な時間損失なしにPHP側でデータを計算できる場合は、それを行うことをお勧めします
ベースのスケーリングは困難です。 バックエンドのスケーリングは非常に簡単です。 - テーブルを別のデータベースサーバーに分散すると、JOINクエリがまったく機能しなくなる場合があります
データベースから送られてくるすべてのデータをキャッシュしてみてください
- 動的に変化するコンテンツがある場合でも、とにかくそれをキャッシュできます。
たとえば、現在のユーザーブロードキャストのリストを1分間キャッシュできます。これにより、データベースの負荷が大幅に軽減されます(ブロードキャストページが非常に訪問されている場合)。 ただし、短時間のキャッシュの場合、複数のバックエンドが同時にキャッシュを更新できないという事実に注意することが不可欠です。 - キャッシュフラッシュメカニズムを使用する
ユーザーは自分に関する情報を更新しましたか? そのため、それに関連するキャッシュを削除する必要があります。
アーキテクチャのヒント
- 静的コンテンツをレンダリングするには、nginxまたはlighttpdを使用します
- PHPを高速化するには、たとえばeAcceleratorを使用できます
- gzipを使用する
- jsファイルとcssファイルを1つに結合する
また、さまざまなコンプレッサーを使用してこれらのファイル(Google Closure Tools、YUI Compressorなど)のボリュームを減らすことも非常に良い方法です。
PSトピックは革新的であると主張するものではなく、大規模プロジェクトの開発側から見た最適化にすぎません。
PPSあなたがカルマに否定的であれば、少なくとも何のためにコメントを書いてください。