ホームページ >バックエンド開発 >PHPチュートリアル >PHPコードを最適化するためのヒント
PHP コードを最適化するためのヒント
1. メソッドを静的として宣言すると、速度が 1/4 向上します。2. echo には戻り値がないため、Echo は print より効率的です。 print は整数型を返します。
3. ループ中ではなく、ループの前に最大ループ数を設定します。
4. メモリ、特に大きな配列を解放するために変数を破棄します。
5. __get、__set、__autoload などの魔法の使用を避けます。など。メソッド;
6. requiere_once() はリソースを大量に消費します。
7. パスの分析にかかる時間を短縮するために、絶対パスを使用します。
8. sexinsex から時間を取得する必要がある場合。スクリプトの実行には、time() よりも $ _SERVER['REQUSET_TIME'] の方が優れています;
9. 正規表現よりも効率が高いため、文字処理関数を使用できる場合は、それらを使用してください。//
10. 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() よりも高速です。