PHPプログラムの性能が向上すれば


「早すぎる最適化はすべての不幸の根源だ.「私がおかず鳥だった頃は、この言葉が正しいかどうかは知らなかったが、自分が老鳥になった後、この言葉がかなり鋭いことに気づいた.
PHPの性能を最適化するには、まずキャッシュに注意しなければならない.PHPがキャッシュを使うと、その性能は500倍になると言われているが、残念ながらZend社は自分の製品を売ることに力を入れているので、一つの会社が一つの言語を穴に入れた.この会社の問題は言うまでもなく、キャッシュの重要性については無視できない.キャッシュモデルを使うことができる.ブロック(例えばMemcache)やキャッシュテンプレート(Smarty)などは一連のキャッシュ処理を行いますが、もちろん私が前に紹介した2つのページの静的化とファイル方式でデータベース情報をキャッシュする方法もこの種類にあります.
第2点はメモリの消耗の問題で、この点はやはり比較的に大きくて、いくつかの細部を言って、一部の人は変数を1部割り当てるのが好きで、それによってメモリのオーバーヘッドを増大して、例えば私達はGETから受け取ったパラメータ、直接使って、どうしても更に別の変数に値を割り当てて、この変数のメモリの消耗の2倍を招いて、例えば以下のコード:
実は直接次のコードを使えばいいです.
echo strip_tags($_GET['msg']);
の3つ目は、Javaプログラマーがget関数やset関数を書くのが好きかもしれませんが、PHPプログラマーとしてはまったくそうする必要はありません.属性を直接操作すればいいのです.これらの属性を使うと、オーバーヘッドを増やす以外に意味のある仕事はしませんから.
第4点はデータベースの操作の上で、一部の初心者は1回のデータを使うのが好きで1回调べて、実は私达は毎回データベースに接続して更に接続を切断するコストはとても大きくて、私达はするsql操作をいっしょに置くべきで、统一して実行して、何度もデータベースの接続と切断を避けます.
5つ目はincludeやrequireファイルを使用するとき、絶対パスを使用するのは絶対に速く、また自動ロードメカニズムを使用することができます.便利で、効率を保証しています.自動ロードについては、私のブログを見てもいいです.今日書いたばかりです.
6つ目は、いくつかの大きな部分でチューニングを行い、多くの人がsmartyを使うのが好きで、大規模なサイトであれば、smartyのオーバーヘッドを考慮する必要があります.統計によると、smartyは10パーセントのオーバーヘッドを占めていることがあります.これは非常に大きいです.
7つ目は、二重引用符の代わりに一重引用符を使用して文字列を定義すると、PHPは二重引用符で囲まれた文字列で変数を検索しますが、一重引用符はできません.静的メソッドを使用しても、クラスのインスタンス化を回避し、オーバーヘッドを節約できます.echoを使用して複数の文字情報を出力する場合は、原点ではなくカンマを使用します.スペル文字列のコストを削減するため、高速化されます.includeファイルを使用するときに絶対パスを使用すると、PHPがinclud_pathからファイルを検索する操作を回避し、パフォーマンスを向上させるため、コストが削減されます.
8つ目は、単純な文字列について、正規表現を使用しないことです.これにより、コストが増加し、switch case文を使用すると複数のifよりも多くなります.elseifは多重判断のオーバーヘッドが省けるため、最適化されます.変数の操作の場合、1つのローカル変数を増加するのが最も速く、1つのグローバル変数を増加するのが約2倍遅く、1つのペアを増加します象の属性は約3倍遅い.
9つ目は、ApacheがPHPスクリプトを解析する速度が、1つの静的HTMLページを解析するよりも約2倍から10倍遅いため、これも静的化の利点の一つです.ファイルを読み取るときにfopen、freadなどではなくfile_get_contentsで使用できます.
最後のポイントはforeachの効率がforやwhileより少し高いことで、他に何か思い出せないのですが、読者が思いついたら、奥さんを補充してほしいですね.そうだ、apcというキャッシュもありますが、実は私が最初に言ったのはキャッシュです.の