回り道を避けるための PHP コード最適化の 40 のヒント_PHP チュートリアル

WBOY
リリース: 2016-07-21 14:54:43
オリジナル
814 人が閲覧しました

1. メソッドを静的として宣言すると、速度が 1/4 向上します。
2. echo は値を返さず、print は整数を返すため、Echo は print より効率的です。
3. ループ中ではなく、ループの前に最大ループ数を設定します。
4. 変数、特に大きな配列の使用を避けます。 6. requirere_once() はより多くのリソースを必要とします。
7. include と require で絶対パスを使用するため、スクリプトの実行時にセックスする必要がある場合は、$ _SERVER['REQUSET_TIME' ] は time(); よりも優れています
9. 文字処理関数を使用できる場合は、正規表現よりも効率が高いため、それらを使用してください。
10. 、ただし、strtr は str_replace より 1/4 高速です
11. 関数が配列と単純な文字の両方をパラメータとして受け入れることができ (文字置換など)、パラメータ リストが長すぎない場合は、より簡潔な置換ステートメントを使用して、配列を検索および置換パラメータとして受け入れるのではなく、一度に 1 文字のみを置換します。大きなことは小さくする、1+1>2;
12. @ を使用してエラーを隠すと、スクリプトの実行速度が低下します
13.$row['id'] は $row[id] よりも 7 倍高速になります。配列キーと引用符を使用することをお勧めします。
14. ループ内で関数を使用しないでください。たとえば、For($x=0; $x < count)。 ($x); count() 関数は最初に計算します。ローカル変数より 2 倍遅い。
18. ($this->prop++) などのオブジェクトのプロパティの作成は、ローカル変数より 3 倍遅い。
19.初期化されたローカル変数よりも 1 倍遅くなります
20. どの関数でも使用されていないグローバル変数を宣言すると、パフォーマンスが低下します (同じ数のローカル変数を宣言する場合と同じです)。 21. メソッドのパフォーマンスはクラスで定義されたものと同じです テスト対象のクラスに 10 個以上のメソッドを追加してもパフォーマンスに違いはないため、メソッドの数は関係ありません (これらのメソッドはテストの前後です)メソッド);
22. サブクラスのメソッドのパフォーマンスは、基本クラスのメソッドよりも優れています。
23. 1 つのパラメーターのみを呼び出し、関数本体が空の関数は、実行に 7 ~ 8 回の $localvar++ 操作を必要とします。メソッド (クラス内の関数) を実行するには、約 15 の $localvar++ 操作が必要です。
24.文字列を ” の代わりに ' で囲むと、php が '…' 内ではなく、“…” 内の変数を検索するため、処理が少し速くなります。もちろん、これは文字列に変数を含める必要がない場合にのみ実行できます。
25. 文字列を出力する場合は、ドットの代わりにカンマを使用する方が高速です。 注: この関数は一部の文字列を受け入れることができます。
26. Apache サーバーの php スクリプト ページは、対応する HTML ページの生成よりも少なくとも 2 ~ 10 倍の時間がかかります。キャッシュがインストールされている場合、再コンパイルされるたびに php スクリプトにアクセスする必要があります。これにより、繰り返しのコンパイルを削除することでパフォーマンスが 20 ~ 100% 大幅に向上します。ネットワーク アプリケーションのパフォーマンスを向上させ、データベースへの負担を軽減するために、高性能の分散メモリ オブジェクト キャッシュ システムである memcached を使用することをお勧めします。
29. IP アドレスを整数を指定し、文字の代わりにデータベースに保存します。これにより、保管スペースが約 1/4 に削減されます。同時に、アドレスを簡単に並べ替えたり、迅速に検索したりできます。
30. checkdnsrr() を使用して、ドメイン名の存在を通じて一部の電子メール アドレスの有効性を確認できます。 IP アドレス;
31. php5 および mysql4.1 以降を使用している場合は、mysql_* の改良された関数 mysqli_* を使用することを検討してください。 Before プロジェクトを完全にやり直すには、PEAR に必要なものがあるかどうかを確認してください。多くの PHP 開発者が知っているように、PEAR は巨大なリソース ライブラリです。
34. ページのソース コードの適切な形式のコピーを自動的に出力するには、error_reporting(0) 関数を使用します。がユーザーに表示されます。理想的には、php.ini ファイルでエラー報告を完全に無効にする必要があります。ただし、共有仮想ホストを使用していて php.ini を変更できない場合は、error_reporting(0) 関数を追加して各スクリプト ファイルの最初の行に配置することをお勧めします (または、require_once() を使用してそれをロードします)。 . これにより、エラー発生時に機密 SQL クエリとパスが表示されないように効果的に保護できます。
36. データベースを保存 (取得) するときに、gzcompress() と gzuncompress() を使用します。この組み込み関数は、gzip アルゴリズムを使用して 90% に圧縮できます。
37. 関数はパラメーター変数アドレスを参照することで複数の戻り値を持つことができます。変数の前に「&」を追加して、値ではなくアドレスで渡すことを示すことができます
38.「マジッククオート」とSQLインジェクションの危険性を十分に理解する。これを読んでいる開発者のほとんどがすでに SQL インジェクションに精通していることを願っています。ただし、理解することが絶対に重要であるため、ここに記載します。この用語をこれまで聞いたことがない場合は、残りの 1 日をすべてグーグル検索や読書に費やしてください。 39. 小文字やハッシュ表などの他の操作を使用して調整する必要があるため、strlen() を使用すると速度があまり良くありませんが、isset() を使用して同様の機能を実現できます。isset() の速度は strlen() よりも優れています。
40.変数 $i++ の値をインクリメントまたはデクリメントするとき、++$i よりも少し遅くなります。これは PHP に固有のものであり、他の言語には当てはまりません。そのため、C または Java のコードを、突然速くなると思って変更しないでください。実際には、実際には速くなりません。 $i++ で使用される 4 つのオペコードの代わりに必要なのは 3 つだけなので、PHP では ++$i の方が高速です。ポストインクリメントでは、実際には一時的な変数が作成され、その後インクリメントされます。一方、事前インクリメントでは元の値が直接増加します。これは、Zend の PHP オプティマイザーと同様に、オペコードが最適化される最適化の 1 つです。すべてのオペコード オプティマイザーがこの最適化を実行するわけではなく、オペコード オプティマイザーなしで実行されている ISP やサーバーも数多くあるため、この点に留意することをお勧めします。

http://www.bkjia.com/PHPjc/364563.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/364563.html技術記事 1. ある方法が静的であれば、速度は 1/4 向上します。 2.echo の効率は print よりも高く、echo が返されないため、print は一整型を返します。 3.循環の前に...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート