PHP最適化スキル

Aug 08, 2016 am 09:27 AM
apache isset php quot strlen

1. メソッドを静的にできる場合は、静的に宣言します。速度は最大4倍まで高めることができます。 2. エコーは印刷よりも高速です。 3. 文字列連結の代わりに、echo の複数のパラメータを使用します (注釈: ピリオドの代わりにカンマを使用することを指します)。 4. for ループを実行する前に、ループのたびに最大値のペアを計算しないでください。同じ配列を走査する場合、foreach が最も速く、while が最も遅くなります。 foreach は while より約 20"30 高速です。 5. 未使用の変数、特に大きな配列の登録を解除して、メモリを解放します。 6. __get、__set、__autoload の使用を避けるようにしてください。 7. require_once() のコストが高い、 if(!class_exists('class name')) require("file path"); を使用します。 9. ファイルを含めるときにフルパスを使用すると、オペレーティング システムのパスを解決する時間が短縮されます。スクリプトの実行開始時刻 (注釈: サーバーがクライアント要求を受信する時刻) を知りたい場合は、time() よりも $_SERVER['REQUEST_TIME'] を使用する方が良いです10。 11. str_replace 関数は preg_replace 関数よりも高速ですが、strtr 関数は str_replace 関数よりも 4 倍効率的です12. 文字列置換関数がパラメータとして受け入れる場合、パラメータの長さが長すぎない場合は、クエリと置換のパラメータとして配列を受け入れるコード行を記述するだけでなく、渡される各パラメータが文字になるように追加の置換コードを記述することを検討できます13。 select Branch ステートメント (翻訳: switch case) を使用する方がよいです。 14. @ を使用してエラー メッセージをマスクするのは非常に効率的です。 15. Apache の mod_deflate モジュールを開きます。完了したらデータベース接続を閉じる必要があります。 17. $row['id'] は $row[id] よりも 7 倍効率的です 18. エラー メッセージは高価です 19. for ループでは関数を使用しないようにしてください。 for($x=0. ; $x < count($array); $x) count() 関数はループ内で毎回呼び出されます 20 を呼び出すのとほぼ同じ速度です。関数内のローカル変数の速度は同等です 21。 オブジェクト プロパティのインクリメントは 3 倍遅くなります。ローカル変数をインクリメントするよりも 23. 未定義のローカル変数をインクリメントするのは、事前定義されたローカル変数をインクリメントするよりも 9 ~ 10 倍遅くなります。24. 関数内で呼び出さずにローカル変数を定義するだけでも、(ローカル変数をインクリメントするのと同じ程度に) 速度が低下します。 PHP はおそらく、グローバル変数が存在するかどうかを確認します。 25. 10 個のメソッドを (メソッドのテスト前とテスト後の両方で) 追加しましたが、パフォーマンスに変化はなかったので、メソッド呼び出しはクラスで定義されたメソッドの数とは無関係であるようです。 26. 派生クラスのメソッドは、基本クラスで定義された同じメソッドよりも高速に実行されます。 27. 引数を 1 つ指定して空の関数を呼び出すと、ローカル変数を 7 ~ 8 回インクリメントするのと同じくらいの時間がかかります。同様のメソッド呼び出しには、15 近くのローカル変数の増分が必要です。 28. 文字列を囲むには二重引用符の代わりに一重引用符を使用すると高速になります。 PHP は二重引用符で囲まれた文字列内の変数を検索しますが、一重引用符では検索しないためです。もちろん、これは文字列に変数を含める必要がない場合にのみ実行できます。 29. 複数の文字列を出力する場合は、ピリオドの代わりにカンマを使用して文字列を区切ると高速になります。注: これは、複数の文字列をパラメータとして受け取ることができる「関数」です (注釈: PHP マニュアルには、echo は実際の関数ではなく言語構造であると記載されているため、関数は二重引用符で囲まれています)。 。 30. Apache は、静的な HTML ページを解析するよりも 2 ~ 10 倍遅く PHP スクリプトを解析します。使用する静的 HTML ページを増やし、スクリプトを減らします。 31. スクリプトをキャッシュできない限り、呼び出されるたびに再コンパイルされます。 PHP キャッシュ メカニズムを導入すると、通常、コンパイルのオーバーヘッドが排除され、パフォーマンスが 25% ~ 100% 向上します。 32. できるだけキャッシュするようにしてください。memcached を使用できます。 memcached は、動的 Web アプリケーションを高速化し、データベースの負荷を軽減するために使用できる高性能のメモリ内オブジェクト キャッシュ システムです。 OP コードのキャッシュは、リクエストごとにスクリプトを再コンパイルする必要がないように便利です。 33. 文字列を操作し、その長さが特定の要件を満たしているかどうかを確認する必要がある場合は、当然 strlen() 関数を使用します。この関数は計算を行わず、zval 構造体 (PHP 変数の格納に使用される C の組み込みデータ構造体) に格納されている既知の長さの文字列を返すだけなので、実行はかなり高速です。ただし、strlen() は関数であるため、関数呼び出しは小文字などの多くの手順を経るため、多少遅くなります (注釈: 小文字の関数名を指します。PHP は関数名の大文字と小文字を区別しません)。 )、ハッシュ検索、呼び出された関数と一緒に実行されます。場合によっては、 isset() トリックを使用してコードの実行を高速化できます。 (例は以下の通り) if (strlen($foo) < 5) { echo "Foo は短すぎます"; } (以下のトリックと比較してください) if (!isset($foo{5})) { echo "Foo は短すぎます" } isset() を呼び出します。 strlen() よりも高速です。後者とは異なり、言語構造としての isset() は、その実行に関数の検索と小文字が必要ないことを意味します。つまり、実際には、最上位コードで文字列の長さをチェックするオーバーヘッドはそれほどかかりません。 34. 変数 $i のインクリメントまたはデクリメントを実行する場合、$i++ は ++$i より遅くなります。この違いは PHP に固有のものであり、他の言語には当てはまりません。そのため、C または Java コードを変更して、すぐに高速になることを期待しないでください。実際には機能しません。 ++$i は 3 つの命令 (オペコード) のみを必要とするため高速ですが、$i++ は 4 つの命令を必要とします。ポストインクリメントでは、実際には、後でインクリメントされる一時変数が作成されます。プレフィックスの増分は、元の値に直接増加します。これは、Zend の PHP オプティマイザーによって行われるような、最適化の一種です。すべてのコマンド オプティマイザーが同じ最適化を行うわけではなく、コマンド オプティマイザーを備えていないインターネット サービス プロバイダー (ISP) やサーバーが多数存在するため、この最適化を念頭に置くことをお勧めします。 35. すべてがオブジェクト指向 (OOP) である必要はありません。オブジェクト指向は多くの場合高価で、各メソッドとオブジェクトの呼び出しは大量のメモリを消費します。 36. すべてのデータ構造を実装するためにクラスを使用する必要はありません。配列も便利です。 37. コードの再利用性を強化します。 38. 必要に応じていつでもコードをメソッドに分割できます。 39. できるだけ多くの PHP 組み込み関数を使用するようにしてください。 40. コード内に時間のかかる関数が多数ある場合は、それらを C 拡張機能として実装することを検討できます。 41. コードをプロファイリングします。チェッカーは、コードのどの部分にどれくらいの時間がかかっているかを示します。 Xdebug デバッガーには、コードの全体的な整合性を評価し、コード内のボトルネックを明らかにする検査ルーチンが含まれています。 42. mod_zip を Apache モジュールとして使用すると、データを即座に圧縮し、データ転送量を 80% 削減できます。

以上、内容面も含めて PHP の最適化スキルを紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

ApacheでCGIディレクトリを設定する方法 ApacheでCGIディレクトリを設定する方法 Apr 13, 2025 pm 01:18 PM

ApacheでCGIディレクトリを設定するには、次の手順を実行する必要があります。「CGI-Bin」などのCGIディレクトリを作成し、Apacheの書き込み許可を付与します。 Apache構成ファイルに「Scriptalias」ディレクティブブロックを追加して、CGIディレクトリを「/cgi-bin」URLにマッピングします。 Apacheを再起動します。

PHPの永続的な関連性:それはまだ生きていますか? PHPの永続的な関連性:それはまだ生きていますか? Apr 14, 2025 am 12:12 AM

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

Apacheを始める方法 Apacheを始める方法 Apr 13, 2025 pm 01:06 PM

Apacheを開始する手順は次のとおりです。Apache(コマンド:sudo apt-get install apache2または公式Webサイトからダウンロード)をインストールします(linux:linux:sudo systemctl start apache2; windows:apache2.4 "serviceを右クリックして「開始」を右クリック) (オプション、Linux:Sudo SystemCtl

PHPの目的:動的なWebサイトの構築 PHPの目的:動的なWebサイトの構築 Apr 15, 2025 am 12:18 AM

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

Apache80ポートが占有されている場合はどうすればよいですか Apache80ポートが占有されている場合はどうすればよいですか Apr 13, 2025 pm 01:24 PM

Apache 80ポートが占有されている場合、ソリューションは次のとおりです。ポートを占有するプロセスを見つけて閉じます。ファイアウォールの設定を確認して、Apacheがブロックされていないことを確認してください。上記の方法が機能しない場合は、Apacheを再構成して別のポートを使用してください。 Apacheサービスを再起動します。

アクション中のPHP:実際の例とアプリケーション アクション中のPHP:実際の例とアプリケーション Apr 14, 2025 am 12:19 AM

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHP:データベースとサーバー側のロジックの処理 PHP:データベースとサーバー側のロジックの処理 Apr 15, 2025 am 12:15 AM

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

See all articles