ホームページ >バックエンド開発 >PHPチュートリアル >PHP コード最適化スキルの概要
PHP コードの最適化は、資格のある PHP エンジニアであるかどうかを評価するための重要な要素です。プログラムを作成するときは、常にプログラムのリソース使用量を最小限に抑える必要があります。より高速で、必要なコードも少なくなります。 PHP の独自の構文は、C、Java、Perl、および PHP の革新的な構文を組み合わせたもので、CGI や Perl よりも高速に動的 Web ページを実行できます。 PHP は HTML 文書にプログラムを埋め込んで実行するため、HTML タグを完全に生成する CGI に比べて実行効率が非常に高くなります。
PHP 最適化の目的は、最速の実行速度と最も簡単なコードの保守と引き換えに、最小限のコストを費やすことです。
PHP コード最適化のヒント
echo は print よりも高速です。
文字列連結の代わりに、echo の複数のパラメータを使用します。
for ループを実行する前にループの最大数を決定します。ループごとに最大値を計算するのではなく、代わりに foreach を使用することをお勧めします。
グローバル変数の場合、使用後に unset() する必要があります。
二重引用符の代わりに一重引用符を使用して文字列を囲むと、処理が速くなります。
PHP は二重引用符で囲まれた文字列内の変数を検索しますが、一重引用符は検索しないためです。
関数は正規表現を置き換えて同じ関数を完成させます。変数 $i のインクリメントまたはデクリメントを実行する場合、$i は $i よりも遅くなります。
この違いは PHP に固有のものであり、他の言語には当てはまりません。$i は 4 つの命令を必要とするのに対し、$i は 3 つの命令 (オペコード) しか必要としないため高速です。
Postincrement は実際に、後でインクリメントされる一時変数を作成します。
プレフィックスの増分は、元の値に直接増加します。
switch case を使用することは、複数の if、else if ステートメントを使用するよりも優れています。
PHP コードをデバッグするには、var_dump を使用します。
PHP デバッグ テクノロジを探している場合は、var_dump が探しているターゲットであると言わなければなりません。このコマンドは、PHP 情報の表示に関するすべてのニーズを満たすことができ、コードのデバッグのほとんどの場合は次のようになります。 PHP の取得に関連し、値に関連します。
ファイルを含めるときにフル パスを使用すると、オペレーティング システムのパスを解決する時間が短縮されます。
あらゆる場面でグローバルな値を作成するのは悪い習慣ですが、実際の状況ではこれが必要な場合もあります。
データベース テーブルまたはデータベース接続情報にはグローバル値を使用することをお勧めしますが、PHP コードではグローバル値を頻繁に使用しないでください。
また、より良いアプローチは、グローバル変数を config.php ファイルに保存することです。
スクリプトの実行開始時刻を知りたい場合は、time() の代わりに $_SERVER[‘REQUEST_TIME’] を使用することをお勧めします。
Apache の mod_deflate モジュールを開きます。
@ を使用してエラー メッセージをブロックするのは非常に非効率です。
多数の PHP 組み込み関数を使用してみてください。
未定義のローカル変数のインクリメントは、事前定義されたローカル変数のインクリメントより 9 ~ 10 倍遅くなります。
派生クラスのメソッドは、基本クラスで定義された同じメソッドよりも高速に実行されます。
関数内で呼び出さずにローカル変数を定義するだけでも速度が低下します (ローカル変数をインクリメントするのと同じ程度)。Apache が PHP スクリプトを解析する時間は、静的 HTML を解析するよりも 2 遅くなります。ページを10回まで。
できるだけ多くの静的 HTML ページを使用し、スクリプトの数を減らします。前に述べたように、99% の場合、PHP Web サイトで最も重要な部分はデータベースです。
したがって、SQL の正しい使用方法をよく理解し、リレーショナル テーブルやより高度なデータベース テクノロジを学ぶ必要があります。
1 つのパラメーターを指定して空の関数を呼び出すには、7 ~ 8 個のローカル変数のインクリメント操作を実行するのと同じ時間がかかります。
文字列を操作し、その長さが特定の要件を満たしているかどうかを確認する必要がある場合は、当然 strlen() 関数を使用します。
この関数は計算を行わず、zval 構造体 (PHP 変数の格納に使用される C の組み込みデータ構造体) に格納されている既知の文字列長を返すだけなので、非常に高速に実行されます。
すべての状況でオブジェクト指向開発を使用する必要があるわけではありません。オブジェクト指向開発は多くの場合非常に高価であり、各メソッドとオブジェクトの呼び出しで大量のメモリが消費されます。
スクリプトをキャッシュできない場合、スクリプトは呼び出されるたびに再コンパイルされます。 PHP キャッシュ メカニズムを導入すると、通常、コンパイルのオーバーヘッドが排除され、パフォーマンスが 25% ~ 100% 向上します。
PHP コードの最適化に関する注意事項
短いコードは高速なコードとは異なります
多くの人がプログラムを作成しています可能な限り簡潔にコードを書きたいと思うことがありますが、コードが短いと実行に時間がかかることがあります。プログラムを作成するときは、速度を追求するのではなく、プログラムのスケーラビリティに注意を払う必要があります。ほとんどのアプリケーションのボトルネックはコードではなくデータベースであるため、コードを最適化する前に、まずデータベース関連の部分に注目してください。
マイクロ最適化は良いことよりも害のほうが多い
マイクロ最適化とは何ですか?前述したように、コードの正規表現部分を文字列関数に置き換えます。これには次の欠点があります。
(1) 時間がかかります
(2) パフォーマンスの問題を根本的に解決することはできません
(3) 以前のコードが破壊され、不明なエラーが発生する可能性が非常に高いです
(4) 報酬よりも報酬を支払う
ここで一つ誤解があるのですが、プログラムをより最適化するために、ビジネスロジックを解析する際に最適化を考慮して、順番に変更を加えていく人がいます。より良いコードを取得するためのビジネス ロジック。プログラムの目的は現実に遭遇する問題を解決することであり、本末転倒ではありません。
PHP 関連の技術記事の詳細については、PHP チュートリアル 列にアクセスして学習してください。
以上がPHP コード最適化スキルの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。