36条テクニック最適化PHPコード(まとめ)

2994 ワード

原文:38条テクニックPHPコードの最適化
1、もし1つの方法が静的であれば、彼は静的であることを宣言し、速度は1/4向上することができる.
2、echoの効率はprintより高い.echoは値を返さないため、printは整数を返す.
3、サイクルの前にサイクルの最大回数を設定し、サイクルの中ではない.
4、変数を破棄してメモリ、特に大きな配列を解放する.
5、像の使用を避ける_get, __set, __Autoloadなどのマジック方法;
6、requiere_once()比較消費資源;
7、includesとrequiresで絶対パスを使用し、パスを分析するのにかかる時間がより少ない.
8、スクリプト実行までの時間が必要な場合は$SERVER['REQUSET_TIME']はtime()より優れている.
9、文字処理関数を使うことができる人は、できるだけ彼らを使うことができます.効率が正則より高いからです.
10、str_replace文字置換比正規置換preg_replaceは速いがstrtrはstrより速いreplaceはまた1/4速い.
11、1つの関数が配列を受け入れることができ、単純な文字をパラメータとして受け入れることができ、例えば文字の置換を受け入れることができ、パラメータのリストがあまり長くない場合は、配列を検索と置換パラメータとして受け入れるのではなく、簡潔な置換文を多く使うことを考慮することができます.大事化小,1+1>2;
12、@でエラーを隠すとスクリプトの実行速度が低下する.
13、$row['id']は$row[id]より7倍速く、配列キーに引用符を付ける習慣を身につけることをお勧めします.
14、エラーメッセージはとても役に立ちます;
15.ループには、For($x=0;$x16、方法の中で局所変数を確立する速度が最も速く、97 xxooはほとんど方法の中で局所変数を呼び出すのと同じくらい速い.
17、グローバル変数を確立するのは局部変数より2倍遅い.
18、オブジェクト属性(クラス内の変数)を確立します.例えば($this->prop+)はローカル変数より3倍遅いです.
19、宣言されていない局所変数を確立するのは初期化された局所変数より9-10倍遅い.
20、どの関数にも使用されていないグローバル変数を宣言すると、パフォーマンスが低下し(同じ数のローカル変数を宣言するのと同じ)、PHPはこのグローバル変数が存在するかどうかをチェックする可能性があります.
21、方法の性能は1つのクラスで定義された方法の数とは関係ありません.私は10つ以上の方法をテストのクラスに追加した後、性能に差がありません.
22、サブクラスでの方法の性能はベースクラスより優れている.
23、1つのパラメータのみを呼び出し、関数体が空の関数の実行にかかる時間は7-8回の$localvar++演算に等しく、1つの類似の方法(クラス内の関数)は約15回の$localvar++演算に等しい.24、Surrounding your string by ‘ instead of ” will make things interpret a little faster since php looks for variables inside “…” but not inside ‘…’. Of course you can only do this when you don’t need to have variables in the string.
25、文字列を出力するとき、ポイントの代わりにカンマを使うと分割が速くなります.注意:これはechoにのみ作用し、この関数はいくつかの文字列をパラメータとして受け入れることができます.
26、apacheサーバーの中で1つのphpスクリプトページは相応のHTML静的ページより少なくとも2-10倍の時間を生成し、静的HTMLページと少量の足どりを多く使うことを提案する.
27、キャッシュがインストールされていない限り、phpスクリプトはアクセスするたびに再コンパイルする必要があります.phpキャッシュプログラムをインストールすることをお勧めします.これにより、重複したコンパイルを除去することで、20~100%のパフォーマンスが明らかに向上します.
28、memcached、高性能の分布式メモリオブジェクトキャッシュシステムを提案し、動的ネットワークアプリケーションの性能を高め、データベースの負担を軽減する.
29、ip 2 long()とlong 2 ip()関数を使用して、IPアドレスを文字型ではなくデータベースに格納するように変換します.これにより、ストレージ容量の1/4をほぼ削減できます.同時に、アドレスのソートと迅速な検索を容易にすることができます.
30、checkdnsrr()を使用してドメイン名の存在性によって一部のemailアドレスの有効性を確認し、この内蔵関数は各ドメイン名が1つのIPアドレスに対応することを保証することができる.
31、三元演算子を愛用してみる(?:);
32、あなたの項目を徹底的にやり直したい場合は、PEARが必要かどうかを見てみましょう.PEARは巨大なリポジトリであり、多くのphp開発者が知っている.
33、highlight_を使うfile()は、フォーマットされたページソースコードのコピーを自動的に印刷することができます.
34、error_の使用Reporting(0)関数は、潜在的な機密情報がユーザーに表示されることを予防する.理想的なエラーレポートはphpに完全に無効にするべきである.iniファイルにあります.しかし、共有仮想ホストを使っている場合はphp.iniは修正できませんerrorを追加したほうがいいです.Reporting(0)関数は、各スクリプトファイルの最初の行(またはrequire_once()でロード)に配置され、エラー時に敏感なSQLクエリーとパスが表示されないように効果的に保護されます.
35、gzcompress()およびgzuncompress()を使用して、容量の大きい文字列を圧縮(解凍)してデータベースに格納(取り出し)する場合.この内蔵関数はgzipアルゴリズムを用いて90%に圧縮できる.
36.パラメータ変数アドレスの参照により、1つの関数に複数の戻り値が与えられる.変数の前に「&」を付けて、値ではなくアドレスで渡すことができます.