PHP コード最適化スキルの概要 (PHP 最適化に関する 36 のヒント)

WBOY
リリース: 2016-07-25 08:59:12
オリジナル
885 人が閲覧しました
この記事では、PHP コードの最適化に関するいくつかのヒントを紹介します。必要な場合は参考にしてください。

1. メソッドが静的である可能性がある場合は、それを静的として宣言すると、速度が 1/4 増加します。 2. Echo は print より効率的です。これは、print が整数を返すのに対し、echo は値を返さないためです。 3. ループの最大数は、ループ中ではなく、ループの前に設定します。 4. 変数を破棄してメモリ、特に大きな配列を解放します。 5. __get、__set、__autoload などのマジック メソッドの使用は避けてください。 6. requirere_once() はより多くのリソースを消費します。 7. include と require で絶対パスを使用すると、パスの分析にかかる時間が短縮されます。 8. sexinsex からスクリプトが実行されるまでの時間を取得する必要がある場合は、time() よりも $_SERVER['REQUSET_TIME'] の方が適しています。 9. 正規表現よりも効率的な文字処理関数を使用できる場合は、それらを使用してみてください。// 10. str_replace 文字置換は通常の置換 preg_replace より高速ですが、strtr は str_replace より 1/4 高速です。 11. 関数が文字置換などのパラメータとして配列と単純な文字の両方を受け入れることができ、パラメータ リストが長すぎない場合は、配列を文字置換として受け入れる代わりに、より簡潔な置換ステートメントを使用して一度に 1 文字だけを置換することを検討できます。パラメータを検索して置換します。大きなものは小さなものに還元され、1+1>2。 12. @ を使用してエラーを隠すと、スクリプトの速度が低下します。 13. $row['id'] は $row[id] より 7 倍高速です。配列キーに引用符を追加する習慣を身に付けることをお勧めします。 14. エラーメッセージは便利です。 15. ループ内で関数を使用しないでください。たとえば、For($x=0; $x prop++) はローカル変数よりも 3 倍遅くなります。 18. 宣言されていないローカル変数の作成は、初期化されたローカル変数よりも 9 ~ 10 倍遅くなります。 19. どの関数でも使用されていないグローバル変数を宣言すると、パフォーマンスも低下します (同じ数のローカル変数を宣言するのと同じです)。PHP では、グローバル変数が存在するかどうかを確認することがあります。 20. メソッドのパフォーマンスは、クラスに定義されているメソッドの数とは関係がありません。テスト対象のクラスに 10 個以上のメソッドを追加してもパフォーマンスに違いはありません (これらのメソッドはテスト メソッドの前後にあります)。 21. サブクラスのメソッドのパフォーマンスは、基本クラスのメソッドよりも優れています。 22. パラメーターを 1 つだけ呼び出し、関数本体が空の関数の実行には 7 ~ 8 回の $localvar++ 操作が必要ですが、同様のメソッド (クラス内の関数) の実行には約 15 回の $localvar++ 操作が必要です。 23. 文字列を出力するときは、ドットの代わりにカンマを使用する方が高速です。注: これはエコーに対してのみ機能します。この関数はパラメーターとしていくつかの文字列を受け入れることができます。 24. Apache サーバーでは、PHP スクリプト ページの生成には、対応する HTML 静的ページよりも少なくとも 2 ~ 10 倍の時間がかかります。より多くの静的 HTML ページと少数のスクリプトを使用することをお勧めします。 25. キャッシュをインストールしていない限り、PHP スクリプトはアクセスされるたびに再コンパイルする必要があります。 PHP キャッシュ プログラムをインストールすることをお勧めします。これにより、コンパイルの繰り返しが不要になり、パフォーマンスが 20 ~ 100% 大幅に向上します。 26. ネットワーク アプリケーションのパフォーマンスを向上させ、データベースの負担を軽減するには、高性能の分散メモリ オブジェクト キャッシュ システムである memcached を使用することをお勧めします。 27. ip2long() 関数と long2ip() 関数を使用して、IP アドレスを整数型に変換し、文字型ではなくデータベースに格納します。これにより、保管スペースが約 1/4 に削減されます。同時に、住所を素早く並べ替えて検索することができます。 28. checkdnsrr() を使用して、ドメイン名の存在を通じて一部の電子メール アドレスの有効性を確認します。この組み込み関数により、各ドメイン名が IP アドレスに対応していることが確認されます。 29. php5 および mysql4.1 以降を使用している場合は、mysql_* の改良された関数 mysqli_* の使用を検討してください。 30. 三項演算子 (?:) を使用してみてください。 31. プロジェクトを完全にやり直すことを考える前に、PEAR に必要なものがあるかどうかを確認してください。 PEAR は、多くの PHP 開発者が知っている巨大なリソース ライブラリです。 32. 適切にフォーマットされたページのソース コードのコピーを自動的に印刷するには、highlight_file() を使用します。 33. error_reporting(0) 関数を使用して、潜在的に機密情報がユーザーに表示されないようにします。理想的には、php.ini ファイルでエラー報告を完全に無効にする必要があります。ただし、共有仮想ホストを使用していて php.ini を変更できない場合は、各スクリプト ファイルの最初の行に error_reporting(0) 関数を追加することをお勧めします (または、require_once() でロードする)。エラー発生時に機密性の高い SQL クエリとパスが表示されないように保護します。 34. データベースへの格納(取得)時に大容量文字列を圧縮(解凍)するには、gzcompress()、gzuncompress()を使用します。この組み込み関数は、gzip アルゴリズムを使用して最大 90% 圧縮できます。 35. パラメータ変数のアドレスを参照することで関数に複数の戻り値を持たせる。変数の前に「&」を追加すると、変数を値ではなくアドレスで渡すことを示すことができます。 36. strlen() の使用は、小文字やハッシュ テーブル クエリなどの他の操作を呼び出す必要があるため、それほど高速ではありません。isset() を使用すると、strlen() よりも高速になります。 興味があるかもしれない記事: PHP コードを最適化するための 40 のヒント



ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート