PHP コードを最適化するためのテクニックのまとめ
1. メソッドが静的である可能性がある場合は、それを静的として宣言すると、echo の方が print よりも効率的になるためです。値を返さない、print は整数を返す
3. ループ中ではなく、ループの前に変数を破棄して、特に大きな配列を使用しないでください。 、__set、__autoload などのマジック メソッド。
6. requiere_once() はより多くのリソースを必要とします。これにより、sexinsex が必要な場合に時間がかかります。スクリプトへの実行時間の点では、time();
9 よりも $_SERVER['REQUSET_TIME'] の方が優れています。文字処理関数が使用できる場合は、正規表現よりも効率が高いため、使用してみてください。//
10. str_replace 文字置換は通常の置換 preg_replace より優れています。高速ですが、strtr は str_replace より 1/4 高速です。
11. 関数が文字置換など、配列と単純な文字の両方をパラメータとして受け入れることができ、パラメータ リストがそうでない場合長すぎる場合は、検索および置換パラメーターとして配列
を受け入れるのではなく、一度に 1 文字のみを置換する、より簡潔な置換ステートメントを使用することを検討できます。大きなことは小さくする、1+1>2;
12. @ を使用してエラーを隠すと、スクリプトの実行速度が低下します;
13. $row['id'] は $row[id] よりも 7 倍高速になります。配列キーと引用符の習慣を開発することをお勧めします。
14. ループ内で関数を使用しないでください。たとえば、For($x=0; $x < count($)。 array); $x)、count() 関数は最初に計算します;
16. グローバル変数の作成はローカル変数よりも 2 倍遅くなります;
17. ($this など) のオブジェクト プロパティ (クラス内の変数) の作成- >prop++) はローカル変数よりも 3 倍遅くなります。
18. 未宣言のローカル変数の作成は、初期化されたローカル変数よりも 9 ~ 10 倍遅くなります。
19.また、パフォーマンスも低下します (同じ数のローカル変数を宣言します)。PHP は、このグローバル変数が存在するかどうかを確認します
20。テスト対象のクラスに 10 個以上のメソッド
を追加したため ( テスト メソッドの前後でこれらのメソッドのパフォーマンスに違いはありません。
21. サブクラスのメソッドのパフォーマンスは、基本クラスのメソッドよりも優れています。
22. パラメーターを 1 つだけ呼び出し、関数本体が空の関数の実行にかかる時間は 7 ~ 8 回の $localvar++ 操作に相当しますが、
同様のメソッド (クラス内の関数) の実行時間は約 15 $localvar++ に相当します。操作;
23. 文字列を出力する場合は、ドットの代わりにカンマを使用する方が高速です。注: これはエコーでのみ機能します。この関数は一部の文字列をパラメータとして受け入れることができます。Apache サーバーでは、対応する HTML 静的ページよりも php スクリプト ページの生成に少なくとも 2 ~ 10 倍の時間がかかります。より静的な HTML ページといくつかのスクリプトを使用するには
25. キャッシュがインストールされていない限り、アクセスするたびに php スクリプトを再コンパイルする必要があります。 php
キャッシュ プログラムをインストールすることをお勧めします。これにより、繰り返しのコンパイルが削除され、パフォーマンスが 20 ~ 100% 大幅に向上します。
26. パフォーマンスを向上させるには、高性能の分散メモリ オブジェクト キャッシュ システムである memcached を使用することをお勧めします。動的ネットワーク アプリケーションのパフォーマンス、
データベースへの負担の軽減、
27. ip2long() 関数と long2ip() 関数を使用して、IP アドレスを文字ではなく整数に変換し、データベースに保存します。これにより、保管スペースが約 1/4 に削減されます。同時に、アドレスをすばやく並べ替えて検索することができます。
28. checkdnsrr() を使用して、ドメイン名の存在を通じて一部の電子メール アドレスの有効性を確認することで、各ドメイン名が IP に対応していることを確認できます。アドレス;
29. php5 および mysql4.1 以降を使用している場合は、mysql_* の改良された関数 mysqli_* を使用することを検討してください。プロジェクトを開始する前に、PEAR に必要なものがあるかどうかを確認してください。 PEAR は巨大なリソース ライブラリです。
多くの PHP 開発者はそれを知っています。
32. 適切にフォーマットされたページ ソース コードのコピーを自動的に出力するには、error_reporting(0) 関数を使用します。がユーザーに表示されます。理想的には、php.ini ファイルでエラー報告を完全に無効にする必要があります。ただし、共有仮想ホストを使用していて php.ini を変更できない場合は、error_reporting(0) 関数を追加して各スクリプト ファイルの最初の行に配置する (または
require_once() を使用してロードする) ことをお勧めします。 ) これにより、エラー発生時に機密 SQL クエリとパスが表示されないように効果的に保護できます。
34. データベースにデータを保存 (取得) する前に、gzcompress() と gzuncompress() を使用します。この組み込み関数は、gzip アルゴリズムを使用して最大 90% 圧縮できます。
35. 関数はパラメーター変数アドレスを参照することで複数の戻り値を持つことができます。変数の前に「&」を追加すると、
値ではなくアドレスで渡すことを示すことができます。 strlen() の使用は、小文字やハッシュ テーブル クエリなどの他の操作を呼び出す必要があるため、あまり高速ではありません。 isset() を使用して同様の機能を実現できます。 isset() は strlen() よりも高速です
;