偉大なマスター、ホアはかつてこう言いました。「時期尚早な最適化はすべての不幸の根源である。」私が初心者の頃は、この言葉が正しいかどうかわかりませんでしたが、老鳥になってからこれを発見しました。この文章は非常に鋭く、適切であり、広く流通する価値があります。
PHP のパフォーマンスを最適化するために、最初に注意すべきことはキャッシュです。残念ながら、PHP がキャッシュを使用するとパフォーマンスが 500 倍向上すると言う人もいます。したがって、会社 言語が台無しになった場合、会社の問題は言うまでもなく、キャッシュの重要性を無視することはできません。キャッシュ モジュール (Memcache など) またはキャッシュ テンプレート (Smarty) を使用して、一連のキャッシュ プロセスを実行できます。 もちろん、以前に紹介したページの静的化とデータベース情報のファイル キャッシュの 2 つの方法もこのカテゴリに属します。
2 番目の点は、メモリ消費の問題です。この点は、GET から受け取るパラメータなど、メモリのオーバーヘッドを増やすために変数を割り当てることを好む人もいます。これを別の変数に割り当てる必要があるため、その変数のメモリ消費量が 2 倍になります:
<?php//只是为了美观的新变量$msg = strip_tags($_GET['msg']);echo $msg;
echo strip_tags($_GET['msg']);
4 番目のポイントは、データベースの操作にあり、一度データを確認することを好む人もいます。実際、毎回データベースに接続して切断するためのオーバーヘッドが非常に高くなります。複数のデータベース接続と切断を避けるために、それらをまとめて均一に実行します。
5 番目のポイントは、ファイルを含めたり要求したりする場合、絶対パスを使用する方が確実に高速であるということです。また、自動ロード機能については、私の記事を参照してください。今日のブログ記事。
6 番目のポイントは、smarty を使用することを好む人が多く、smarty がコストの 10% を占めると計算する人もいます。 、これはまだ非常に印象的です。
7 番目のポイントは、文字列の定義に二重引用符の代わりに一重引用符を使用すると、処理が若干速くなります。これは、PHP は二重引用符で囲まれた文字列内の変数を検索しますが、一重引用符では検索しないためです。静的メソッドを使用すると、クラスのインスタンス化が回避され、オーバーヘッドが節約されるため、速度も向上します。 echo を使用して複数の文字情報を出力する場合、原点の代わりにカンマを使用すると、文字列を結合するオーバーヘッドがなくなるため、プロセスが高速化されます。ファイルをインクルードするときに絶対パスを使用すると、PHP による include_path 内のファイルの検索が回避され、パフォーマンスが向上するため、オーバーヘッドも削減されます。 8 番目のポイントは、単純な文字列の場合は、正規表現を使用しないでください。これによりコストが増加します。複数の if よりも switch case ステートメントを使用してください。 。 elseif は複数の判断によるオーバーヘッドを排除するため、より最適化されています。変数を操作する場合、ローカル変数のインクリメントは最も速く、グローバル変数のインクリメントは約 2 倍遅く、オブジェクトの属性のインクリメントは約 3 倍遅くなります。是の 9 番目の点は、静的化のちょっとした理由です。Apache が PHP スクリプトを分析する速度は、静的な HTML ページの分析よりも約 2 ~ 10 倍遅く、これも静的の利点の 1 つです。ファイルを読み取るときは、fopen、fread、その他の操作の代わりに file_get_contents を使用できます。最後の点は、Foreach の効率が For と WHILE よりも効率的であるということです。読者が思いつくのであれば、APC キャッシュを補充したいと思います。 . 実は私が一番のポイントはキャッシングです。 。 。