この記事は、高効率プログラミングに関する PHP 最適化ガイドラインに関するものであり、一定の参考価値があるものですので、困っている方は参考にしていただければ幸いです。
正規表現の使用を減らす
##str_replace Function は
preg_replace よりも優れています
strtr 関数は
str_replace よりもはるかに高速です。
strpbrk()、strncasecmp()、strpos()、strrpos()、stripos()、strripos()。
文字置換
また、不必要な置換は行わないでください。置換がない場合でも、str_replace はパラメータにメモリを割り当てます。非常に遅い!
strpos を使用して最初に (非常に高速に) 検索し、置換する必要があるかどうかを確認し、置換する必要がある場合は置換します。
交換が必要な場合、効率はほぼ同じで、その差は0.1%程度です。
置換が必要ない場合: strpos を 200% 高速に使用します。
は time()
よりも優れています。 1 つは既製で直接使用でき、もう 1 つは関数によって取得された結果が必要です。
$iIncrement
が増減すると、$i
は $i
よりも遅くなります。 この違いは PHP に固有のものであり、他の言語には当てはまりません。そのため、C または Java コードを変更して、すぐに高速になることを期待しないでください。実際には機能しません。
は 3 つの命令 (オペコード) しか必要としないため高速ですが、$i
は 4 つの命令を必要とします。
。 この組み込み関数は gzip アルゴリズムを使用し、文字列を
90% 圧縮できます。
、 fopen()
、feof()
、fgets()
およびその他の一連のメソッドでは、file_get_contents()
を使用してみてください。
を使用して高速化します。 。 ただし、
echo は言語構造であり、実際の関数ではありません。 ただし、カンマで区切られた複数の文字列を「関数」パラメータとして渡すことができるため、より高速になります。
autoload
の乱用と不適切に設計された自動ロード関数のみです。So,
などの魔法のメソッドは使用しないようにしてください。これは議論の対象になります。
理想的には、php.ini ファイルでエラー報告を完全に無効にする必要があります。
共有仮想ホストを使用している場合は、php.ini を変更できないため、error_reporting() 関数を追加することをお勧めします。
これを各スクリプト ファイルの最初の行に置くか、
require_once() を使用してロードします。これにより、エラー発生時に機密 SQL クエリとパスが表示されないように効果的に保護できます
。 これにより、PHP 終了タグの後にスペースまたは改行が誤って追加された場合に、PHP がこれらのスペースの出力を開始することを回避できますが、現時点ではスクリプト内でそれらを出力するつもりはありません。
register_globals と magic quotes
PHP の古いバージョンでは、インストール中にこれら 2 つの機能がデフォルトで有効になるため、セキュリティの脆弱性、プログラミング エラー、その他の問題が発生する可能性があります。
たとえば、変数はユーザーがデータを入力したときにのみ作成されます。
両方の関数は PHP5.4.0 以降廃止されたため、すべてのプログラマはこれらの関数を使用しないようにしてください。
過去のプログラムでこれら 2 つの機能が使用されていた場合は、できるだけ早く削除してください。
include と require
では絶対パス を使用してください絶対パスを使用します。
相対パスが含まれている場合、PHP は
内のファイルを検索します。絶対パスを使用すると、このような問題が回避され、パスの解決にかかる時間が短縮されます。 <p>ファイルをインクルードするために <code>require_once
と include_once
を使用しないでください。これらには、ファイルが参照されているかどうかを判断する追加のプロセスがあります。可能であれば使用しないようにしてください。
代わりに、require
メソッドと include
メソッドを使用してください。
#関数はクラス メソッドより高速です
#パラメーターを 1 つだけ指定し、関数本体を空にして関数を呼び出すとコストがかかります時間は、7-8
に $localvar
操作を掛けたものと同じです。
同じ機能を持つクラス メソッドには、約 15 個の $localvar
操作が必要です。
# サブクラス メソッドを使用する
パラメータを参照渡し
#& を追加することです。
メソッドをできるだけ静的にする
1/4 を改善することができます。私がテストした場合でも、ほぼ 3 倍改善されました。
メモリです。静的メソッドはプログラムの開始時にメモリを生成し、インスタンス メソッド (非静的メソッド) はプログラムの実行中にメモリを生成します。
したがって、静的メソッドは直接呼び出すことができますが、インスタンス メソッドは最初にインスタンスを作成してから呼び出す必要があります。静的メソッドは非常に高速です。しかし、メソッドが多すぎるとメモリを占有します 。
どんな言語もメモリとディスク上で動作しますが、それがオブジェクト指向かどうかはソフトウェア層の問題であり、最下層は同じですが実装方法が異なります。 静的メモリはプログラムの先頭で生成されるため連続的ですが、インスタンス メソッドは離散空間に適用されるため、当然ながら静的メソッドほど高速ではありません。 静的メソッドは常に同じメモリを呼び出します。欠点は、自動的に破棄できないことですが、インスタンス化は破棄できることです。以上が効率的なプログラミング: PHP 最適化ガイドラインの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。