PHP 最適化の目的は、最速の実行速度と最も簡単なコードの保守と引き換えに、最小限のコストを費やすことです。この記事では、包括的な最適化テクニックについて説明します。
1. エコーは印刷よりも高速です。
2. 文字列連結の代わりにechoの複数のパラメータを使用します。
3. for ループを実行する前に最大ループ数を決定します。ループごとに最大値を計算するのではなく、代わりに foreach を使用するのが最善です。
4. グローバル変数については、使用後に unset() する必要があります。
5. 文字列を含めるには二重引用符の代わりに一重引用符を使用します。これにより高速になります。 PHP は二重引用符で囲まれた文字列内の変数を検索するため、一重引用符は検索しません。
6. 関数は正規表現を置き換えて同じ関数を完成させます。
7. 変数 $i のインクリメントまたはデクリメントを実行する場合、$i++ は ++$i よりも遅くなります。この違いは PHP に固有のものであり、他の言語には当てはまりません。 $i++ が必要とする命令 (オペコード) が 3 つだけであるため、++$i は高速です。ポストインクリメントでは、実際には、後でインクリメントされる一時変数が作成されます。プレフィックスの増分は、元の値に直接増加します。
8. 複数の if、else if ステートメントを使用するよりも、switch case を使用する方が良いです。
9. var_dump を使用して PHP コードをデバッグします。 PHP デバッグ テクノロジを探している場合、このコマンドは PHP 情報の表示に関するすべてのニーズを満たすことができ、コードのデバッグのほとんどのケースは値の取得に関連していると言わざるを得ません。 PHPで。
10. ファイルを含める場合はフルパスを使用すると、オペレーティングシステムのパスを解析する時間が短縮されます。
11. あらゆる場面でグローバルな価値観を作成するのは悪い習慣ですが、実際の状況ではこれが必要な場合もあります。データベース テーブルまたはデータベース接続情報にはグローバル値を使用することをお勧めしますが、PHP コードではグローバル値を頻繁に使用しないでください。あるいは、グローバル変数を config.php ファイルに保存する方が良い方法です。
12. スクリプトの実行開始時刻を知りたい場合は、time() の代わりに $_SERVER[‘REQUEST_TIME’] を使用する方が良いでしょう。
13. Apacheのmod_deflateモジュールを開きます。
14. @を使用してエラーメッセージをブロックするのは非常に非効率的です。
15. できるだけ多くの PHP 組み込み関数を使用するようにしてください。
16. 未定義のローカル変数をインクリメントするのは、事前定義されたローカル変数をインクリメントするよりも 9 ~ 10 倍遅くなります。
17. 派生クラスのメソッドは、基本クラスで定義された同じメソッドよりも高速に実行されます。
18. 関数内で呼び出さずにローカル変数を定義するだけでも速度が遅くなります(ローカル変数をインクリメントするのと同じ程度)
19. Apache は静的 HTML を解析するよりも PHP スクリプトを解析する方が時間がかかりますページは 2 ~ 10 倍遅くなります。使用する静的な HTML ページを増やし、スクリプトを減らすようにしてください。
20. 前にも述べたように、PHP Web サイトの最も重要な部分は 99% の確率でデータベースです。したがって、SQL を正しく使用する方法、リレーショナル テーブルおよびより高度なデータベース テクノロジを学ぶ方法に精通している必要があります。
21. パラメータを 1 つ指定して空の関数を呼び出すと、ローカル変数のインクリメント演算を 7 ~ 8 回実行するのと同じ時間がかかります。
22. 文字列を操作し、その長さが特定の要件を満たしているかどうかを確認する必要がある場合、当然 strlen() 関数を使用することになります。この関数は計算を行わず、zval 構造体 (PHP 変数の格納に使用される C の組み込みデータ構造体) に格納されている既知の文字列長を返すだけなので、非常に高速に実行されます。
23. すべての状況でオブジェクト指向開発を使用する必要があるわけではありません。オブジェクト指向開発は多くの場合非常にコストがかかり、各メソッドとオブジェクトの呼び出しは大量のメモリを消費します。
24. スクリプトをキャッシュできない限り、呼び出されるたびに再コンパイルされます。 PHP キャッシュ メカニズムを導入すると、通常、コンパイルのオーバーヘッドが排除され、パフォーマンスが 25% ~ 100% 向上します。