PHP コードを実行する (PHP の効率を向上させる) ための 40 のヒント

WBOY
リリース: 2016-06-13 13:03:13
オリジナル
914 人が閲覧しました

PHP コードを高速化する (PHP 効率を向上させる) 40 のヒント

1. メソッドを静的として宣言すると、速度が 1/4 向上します。
2. echo は値を返さないため、print より効率的です。整数を返します。
3. ループ内ではなく、ループの前に最大ループ数を設定します。
4. __get などの使用を避けます。 __set、__autoload、およびその他のマジック メソッド。
6.requiere_once() はより多くのリソースを消費します。
7. パスの分析にかかる時間が短縮されるようにします。 sexinsex からスクリプトの実行までの時間を取得するには、time();
9 よりも $_SERVER['REQUSET_TIME'] の方が優れています。文字処理関数を使用できる場合は、正規表現よりも効率的であるため、それらを使用してみてください。 ;
10. str_replace 文字置換は通常の置換 preg_replace よりも高速ですが、strtr は str_replace より 1/4 高速です。
11. 関数が文字置換などの配列と単純な文字の両方を受け入れることができる場合。パラメータ リストが長すぎない場合は、検索および置換パラメータとして配列を受け入れる代わりに、一度に 1 文字だけを置換する、より簡潔な置換ステートメントの使用を検討できます。大きなことは小さく、1+1>2;
12 でエラーをカバーすると、スクリプトの実行速度が低下します。
13.$row['id'] は $row[id] よりも 7 倍高速になります。 ] を維持することをお勧めします。
14. エラー メッセージはループ内で使用しないでください。 $x < count($array); $x )、count() 関数は最初に
16 を計算します。97xxoo はメソッドでローカル変数を呼び出すのとほぼ同じ速度です。 ;
17. グローバル変数の作成はローカル変数よりも高速です。
18. ($this->prop++) のようなオブジェクト プロパティの作成は 3 倍遅くなります。
19. 宣言されていないローカル変数の作成は、初期化されたローカル変数よりも 9 ~ 10 倍遅くなります。
20. 関数で使用されていないグローバル変数を宣言すると、パフォーマンスも低下します。ローカル変数の数と同じ)、PHP はこのグローバル変数が存在するかどうかを確認する場合があります。
21. クラスに 10 個以上のメソッドを追加したため、メソッドのパフォーマンスはクラス内で定義されたメソッドの数とは関係ありません。テストされたクラス (これらのメソッドはテスト メソッドの前後にあります)
22. サブクラスのメソッドのパフォーマンスは、基本クラスのパフォーマンスよりも優れています。
23. 1 つのパラメーターのみを呼び出し、関数本体が空の関数は $localvar++ 操作の 7 ~ 8 回に相当しますが、同様のメソッド (クラス内の関数) は約 15 回の $localvar++ 操作に相当します。
24. '' の代わりに ' を文字列にすると、php は '…' 内ではなく、" …" 内の変数を検索するため、解釈が少し速くなります。 もちろん、これを実行できるのは、文字列に変数を含める必要がない場合のみです。
25. 文字列を出力する場合は、ドットの代わりにカンマを使用する方が高速です。 注: この関数は、一部の文字列をパラメータとして受け入れます。対応する HTML 静的ページよりも生成に少なくとも 2 ~ 10 倍の時間がかかります。 一部の静的 HTML ページといくつかのスクリプトを使用することをお勧めします。
27. キャッシュがインストールされていない場合は、php スクリプトを再コンパイルする必要があります。アクセスされるたびに、パフォーマンスを 20 ~ 100% 向上させるために、php キャッシュ プログラムをインストールすることをお勧めします。
28.オブジェクト キャッシュ システム。動的ネットワーク アプリケーションのパフォーマンスを向上させ、データベースの負担を軽減します。
29. ip2long() 関数と long2ip() 関数を使用して、IP アドレスを整数型に変換し、データベースに保存します。キャラクタータイプの。これにより、保管スペースが約 1/4 に削減されます。同時に、アドレスをすばやく並べ替えたり検索したりできます。
30. checkdnsrr() を使用して、ドメイン名の存在を通じて一部の電子メール アドレスが有効であることを確認します。 IP アドレス;
31. php5 および mysql4.1 以降を使用している場合は、mysql_* の改良された関数 mysqli_* の使用を検討してください。 >33. プロジェクトを完全にやり直す前に、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 インジェクションを使用します。ただし、この用語を理解することが絶対に重要であるため、ここに記載します。この用語を聞いたことがない場合は、残りの時間をグーグルで読んでください。小文字やハッシュ テーブルのクエリなどの他の操作では、速度はあまり良くありません。isset() を使用すると、strlen() よりも高速になります。変数 $i++ は ++$i よりも少し遅くなります。これは PHP に特有のものであり、他の言語には当てはまりません。そのため、突然速くなると考えて C または Java コードを変更しないでください。実際に速くなります。 $i++ で使用される 4 つのオペコードの代わりに、必要なのは 3 つだけであるため、++$i はたまたま PHP の方が高速です。ポストインクリメントでは、実際には一時的な変数が作成され、それがインクリメントされますが、事前インクリメントでは元の変数が増加します。これは、Zend の PHP オプティマイザーと同様にオペコードが最適化する最適化の 1 つであり、すべてのオペコード オプティマイザーがこの最適化を実行するわけではなく、オペコード オプティマイザーなしで実行されている ISP やサーバーも数多くあるため、覚えておくとよいでしょう。
詳細なソース参照: http://www.jb51.net/article/23019.htm

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