ホームページ  >  記事  >  バックエンド開発  >  PHP コードを最適化するための 38 のヒント (概要)

PHP コードを最適化するための 38 のヒント (概要)

藏色散人
藏色散人転載
2020-01-25 18:54:532361ブラウズ

PHP コードを最適化するための 38 のヒント (概要)

1. メソッドが静的である可能性がある場合は、それを静的として宣言すると、速度が 1/4 向上します。

2. Echo は、 print 、echo には戻り値がないため、print は整数を返します;

3. ループ中ではなくループの前に最大ループ数を設定します;

4. 変数を破棄してメモリを解放します、特に大きな配列;

5. __get、__set、__autoload などのマジック メソッドの使用は避けてください;

6. requirere_once() はより多くのリソースを消費します;

7 , include と require で絶対パスを使用すると、パスの分析にかかる時間が短縮されます;

8. sexinsex からスクリプトの実行までの時間を取得する必要がある場合は、時間よりも $_SERVER['REQUSET_TIME'] の方が適しています ( );

9. 文字処理関数が使用できる場合は、通常よりも効率が高いため、使用してみてください。;

10. str_replace 文字置換は、通常の置換 preg_replace よりも高速ですが、 strtr は str_replace よりも高速です。高速 1/4;

11. 関数が配列と単純な文字の両方をパラメーターとして受け入れることができ (文字置換など)、パラメーター リストが長すぎない場合は、次の使用を検討できます。より簡潔な置換ステートメント (1 回) 配列を検索および置換引数として受け入れる代わりに、1 文字のみを置換します。大きなことは小さくしてください。1 1>2;

12. @ でエラーをカバーすると、スクリプトの実行速度が低下します;

13.$row['id'] は $ よりも高速ですrow[id] 7 回、配列キーに引用符を追加する習慣を身に付けることをお勧めします;

14. エラー メッセージは非常に便利です;

15. ループ内で関数を使用しないでくださいFor($x=0; $ x < count($array); $x) のように、count() 関数は最初に外側で計算します;

16. メソッド内でローカル変数を作成するのが最も高速です、97xxoo は、メソッドでローカル変数を呼び出すのとほぼ同じです。高速です;

17. グローバル変数の作成は、ローカル変数よりも 2 倍遅くなります;

18. オブジェクト プロパティの作成 ( ($this->prop) などのクラス) はローカル変数より 3 倍遅くなります;

19. 宣言されていないローカル変数の作成は、初期化されたローカル変数よりも 9 ~ 10 倍遅くなります;

20. 未宣言のローカル変数の宣言は、初期化されたローカル変数よりも 9 ~ 10 倍遅くなります。関数で使用されるグローバル変数もパフォーマンスを低下させます (同じ数のローカル変数を宣言するのと同じです)。PHP はグローバル変数が存在するかどうかを確認することがあります。 ;

21. メソッドのパフォーマンスがクラスで定義されているものと異なる テスト対象のクラスに 10 個以上のメソッドを追加してもパフォーマンスに違いはないため、メソッドの数は関係ありません (これらのメソッドはテスト メソッドの前後);

22. サブクラスのメソッドのパフォーマンスは優れています。基底クラス;

23 では、パラメーターを 1 つだけ呼び出し、空の関数を持つ関数があるためです。 body の実行には 7 ~ 8 回の $localvar 操作が必要ですが、同様のメソッド (クラス内の関数) は実行されます 約 15 回の $localvar 操作に相当します;

24. 文字列を ” の代わりに ' で囲むと、解釈が行われますphp は変数を「…」内で検索しますが、「…」内では検索しないため、少し高速になります。もちろん、これを実行できるのは、文字列に変数を含める必要がない場合のみです。

25。より高速です。文字列を出力するときにドットの代わりにカンマを使用します。注: これはエコーでのみ機能します。この関数は一部の文字列をパラメータとして受け入れることができます。

26. Apache サーバーでは、PHP スクリプト ページには少なくとも 2 ~ 10 時間がかかります対応する HTML 静的ページよりも生成に時間がかかります。より多くの静的 HTML ページと少量のステップを使用することをお勧めします;

27。キャッシュがインストールされていない限り、php スクリプトを再コンパイルする必要がありますアクセスされるたびに。 PHP キャッシュ プログラムをインストールすることをお勧めします。これにより、繰り返し行われるコンパイルを削除することで、パフォーマンスが 20 ~ 100% 大幅に向上します (

28)。高性能の分散メモリ オブジェクト キャッシュである memcached を使用することをお勧めします。システムの動的ネットワーク アプリケーションのパフォーマンスを向上させ、データベースの負担を軽減します。

29. ip2long() 関数と long2ip() 関数を使用して、IP アドレスを整数型に変換し、代わりにデータベースに格納します。キャラクタータイプの。これにより、保管スペースが約 1/4 に削減されます。同時に、アドレスの並べ替えや迅速な検索も簡単です;

30. checkdnsrr() を使用して、ドメイン名の存在を通じて一部の電子メール アドレスの有効性を確認します。この組み込み関数により、次のことが保証されます。各ドメイン名は IP アドレスに対応します。;

31. 三項演算子 (?:) を使用するようにしてください。;

32. プロジェクトを完全にやり直す前に、PEAR かどうかを確認してください。必要なものが揃っています。多くの PHP 開発者が知っているように、PEAR は巨大なリソース ライブラリです;

33. 適切にフォーマットされたページ ソース コードのコピーを自動的に印刷するには、highlight_file() を使用します;

34. error_reporting を使用します(0) 機密性の高い情報がユーザーに表示されないようにする機能。理想的には、php.ini ファイルでエラー報告を完全に無効にする必要があります。ただし、共有仮想ホストを使用していて php.ini を変更できない場合は、error_reporting(0) 関数を追加して各スクリプト ファイルの最初の行に配置する (または require_once() でロードする) ことをお勧めします。これにより、エラー発生時に機密 SQL クエリとパスが表示されないように効果的に保護できます;

35. gzcompress() と gzuncompress() を使用して、大容量の文字列をデータベースに保存 (取得) する前に圧縮 (解凍) します。時間。この組み込み関数は、gzip アルゴリズムを使用して 90% に圧縮できます;

36. 関数は、パラメーター変数のアドレスを参照することにより、複数の戻り値を持つことができます。変数の前に「&」を追加して、値ではなくアドレスで渡すことを示すことができます;

37. 「マジック クオート」と SQL インジェクションの危険性を十分に理解してください。これを読んでいるほとんどの開発者がすでに SQL インジェクションに精通していることを願っています。ただし、理解することが絶対に重要であるため、ここに記載します。この用語を聞いたことはありません。残りの一日はグーグル検索と読書に費やします。

38. strlen() の使用は、小文字クエリやハッシュ テーブル クエリなどの他の操作を呼び出す必要があるため、それほど高速ではありません。 isset() を使用して同様の機能を実現できます。isset() は strlen() より高速です;

関連する PHP の知識については、php チュートリアル をご覧ください。

以上がPHP コードを最適化するための 38 のヒント (概要)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。