ホームページ >見出し >PHPコード最適化スキルのまとめ

PHPコード最適化スキルのまとめ

PHP中文网
PHP中文网オリジナル
2018-06-04 20:24:594556ブラウズ

PHP コードの最適化は、資格のある PHP エンジニアであるかどうかを評価するための重要な要素です。プログラムを作成するときは、プログラムの使用リソースを最小限に抑え、より高速に実行し、より少ないコードを作成したいと常に考えています。 PHP の独自の構文は、C、Java、Perl、および PHP の革新的な構文を組み合わせたもので、CGI や Perl よりも高速に動的 Web ページを実行できます。 PHP は HTML 文書にプログラムを埋め込んで実行するため、HTML タグを完全に生成する CGI に比べて実行効率が非常に高くなります。

PHP 最適化の目的は、最速の実行速度と最も簡単なコードの保守と引き換えに、最小限のコストを費やすことです。

PHP コード最適化のヒント

1. echo は print よりも高速です。

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. 前に述べたように、99% の場合、PHP Web サイトで最も重要な部分はデータベースです。したがって、SQL を正しく使用する方法、リレーショナル テーブルおよびより高度なデータベース テクノロジを学ぶ方法に精通している必要があります。

21. 1 つのパラメーターを指定して空の関数を呼び出すには、7 ~ 8 回のローカル変数のインクリメント操作を実行するのと同じ時間がかかります。

22. 文字列を操作し、その長さが特定の要件を満たしているかどうかを確認する必要がある場合は、当然 strlen() 関数を使用します。この関数は計算を行わず、zval 構造体 (PHP 変数の格納に使用される C の組み込みデータ構造体) に格納されている既知の文字列長を返すだけなので、非常に高速に実行されます。

23. すべての状況でオブジェクト指向開発を使用する必要があるわけではありません。オブジェクト指向開発はコストがかかることが多く、各メソッドとオブジェクトの呼び出しで大量のメモリが消費されます。

24. スクリプトをキャッシュできない限り、呼び出されるたびに再コンパイルされます。 PHP キャッシュ メカニズムを導入すると、通常、コンパイルのオーバーヘッドが排除され、パフォーマンスが 25% ~ 100% 向上します。

PHP コードの最適化に関する注意事項

1. 短いコードは高速なコードと同じではありません
多くの人はプログラムを作成するときにできるだけ簡潔にコードを記述したいと考えていますが、コードが短いほど実行時間が長くなる場合があります。

2. プログラムを書くときは、速度を追求するのではなく、プログラムのスケーラビリティにもっと注意を払う必要があります。

3. ほとんどのアプリケーションのボトルネックはコードではなくデータベースであるため、コードを最適化する前に、まずデータベース関連の部分に注目してください。

4. 微細な最適化には利益はありません
微細な最適化とは何ですか?前述したように、コードの正規表現部分を文字列関数に置き換えます。これには以下の欠点があります:
(1) 時間がかかる
(2) パフォーマンスの問題を根本的に解決することはできません
(3) 以前のコードを破壊し、未知のエラーが発生する可能性が非常に高い
(4) 労力

ここで一つ誤解がありますが、プログラムをより最適化するために、ビジネス ロジックを分析する際に最適化を考慮して、より良いコードを得るためにビジネス ロジックを変更する人もいます。 。プログラムの目的は現実に遭遇する問題を解決することであり、本末転倒ではないので、これは非常に愚かな考えです。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。