ホームページ >バックエンド開発 >PHPチュートリアル >ワイルド・スピード 7 興行収入のリアルタイム更新。プログラミング速度ではなく、プログラム速度を追求します。
1. PHP の echo ステートメントの代わりに、埋め込み HTML コードを使用します。
PHP は組み込み Web プログラミング言語であるため、HTML コードと PHP コードを相互に埋め込むことができます。しかし、多くのプログラマは、HTML コードに PHP コードを埋め込むために "" を過剰に使用すると、PHP インタプリタが複数回呼び出され、PHP コードの実行速度が低下することを懸念しているため、代わりに PHP の echo ステートメントを使用して HTML コードを出力することになります。 HTML コードを直接使用します。しかし、真実は全く逆です。各 PHP ページは、すべての PHP コードを解釈するために PHP インタープリタを 1 回だけ呼び出します。そのため、必要な場合にのみ PHP コードを埋め込み、ほとんどの場合、HTML コードを直接使用して結果を入力すると、プログラムの実行速度が低下することはありません。また、echo ステートメントの解析が軽減されるため、コードの実行速度が向上する場合があります。
次のコードは私たちの結論を証明しています。このコードでは、前に紹介した時間テスト関数を使用します。
2. ereg-replace の代わりに str-replace を使用します
Perl でのプログラミングに慣れているプログラマーは、文字列置換作業を完了するために ereg_replace を使用することを好むでしょう。これは、PHP での ereg_replace の使用法が Perl でのパターン マッチングの使用法に似ているためです。 。ただし、次のコードは、ereg_replace の代わりに str_replace を使用すると、コードの実行速度が大幅に向上することを示しています。
str_replace と ereg_replace の実行速度をテストします
//このコードは str_replace
emphasis の実行速度をテストします
for ($i=0; $istr_replace(i>, b> ; , $string)
}
?>
//このコードは ereg_replace
for ($i=0; $iereg_replace(<([/]*) ) i>, <1b>, $string)
}
?>
//結果を出力
結論
str_replace を使用する時間 -
ereg_pattern を使用する時間 -
上記のコードを実行すると、結果は次のようになります。 str_replace の時間 - 0.089757
ereg_pattern の使用時間 - 0.248881
実行結果から、文字列置換関数として ereg_replace の代わりに str_replace を使用すると、コードの実行速度が大幅に向上することがわかります。
3. 文字列の引用符に注意してください
他の多くのプログラミング言語と同様、PHP では二重引用符 ("") を使用して文字列を引用することも、一重引用符 () を使用することもできます。ただし、PHP では、二重引用符を使用して文字列を引用すると、PHP パーサーはまず文字列内に変数への参照があるかどうかを分析し、変数が存在する場合はその変数を置き換えます。一重引用符の場合は、それほど複雑ではありません。一重引用符で囲まれたすべての文字列が直接表示されます。明らかに、PHP プログラミングでは、二重引用符よりも一重引用符を使用して文字列変数を引用する方が高速です。
4. データベースでの共同操作の使用を避ける
他の Web プログラミング言語と比較して、PHP のデータベース機能は非常に強力です。ただし、PHP でデータベースを実行するのは依然として非常に時間と労力がかかるため、Web プログラマはデータベース クエリ操作を最小限に抑え、データベースに適切なインデックスを確立する必要があります。もう 1 つの注意すべき点は、PHP を使用してデータベースを操作する場合、複数のデータ テーブルの結合操作を使用しないようにすることです。結合操作はデータベースのクエリ機能を強化しますが、サーバーの負荷が大幅に増加します。
この問題を説明するために、以下の簡単な例を見てみましょう。
データベースに 2 つのデータテーブル foo と big_foo を作成しました。データテーブル foo には、1 から 1000 までのすべての自然数を含むフィールドが 1 つだけあります。データ テーブル big_foo にもフィールドは 1 つしかありませんが、1 から 1,000,000 までのすべての自然数が含まれています。したがって、サイズの点では、big_foo は foo とそれ自体を組み合わせたものと等しくなります。
$db->query("select * from foo");
0.032273 秒
$db->next_record();
0.00048999999999999 秒
$db->query("foo 値に挿入 (NULL) ) ") ;
0.019506 秒
$db->query("select * from foo as a, foo as b");
17.280596 秒
$db->query("select * from foo as a, foo as b where a .id > b.id");
14.645251 秒
$db->query("select * from foo as a, foo as b where a.id = b.id");
0.041269 秒
$ db- >query("select * from big_foo");
25.393672 秒
上記の操作結果から、1,000 レコードを持つ 2 つのデータ テーブルを結合する速度は、1,000 レコードを持つ大規模なデータ テーブルほど速くないことがわかります。 1,000,000 件のレコードを単独で実行するとどれだけ早くなるでしょうか。
5. include と require の違いに注意してください
PHP プログラミングでは、include() と require() は同じ機能ですが、include() は条件付き包含関数であるのに対し、require() には使用方法がいくつか異なります。無条件に組み込まれる関数です。たとえば、次の例では、変数 $somgthing が true の場合、ファイル somefile がインクルードされます。次のコードは、ファイル somefile をファイルにインクルードします:
if($something){
require("somefile");
} 次の興味深い例は、これら 2 つの関数の違いを完全に示しています。
$i = 1;
while ($i < 3) {
require("somefile.$i");
$i++;
このコードでは、ループするたびにプログラムが同じファイルにインクルードされます。ファイル。明らかに、これはプログラマーの本来の意図ではありません。コードから、このコードが各ループに異なるファイルを含めることを望んでいることがわかります。この関数を完了するには、関数
include(){
$i = 1;
while ($i include("somefile.$i"); を使用する必要があります。
}
6. echo と print の違いに注意してください
PHP の echo と print の機能は基本的に同じですが、両者には微妙な違いがあります。たとえば、次のコードを実行すると、変数 $res の値は 1 になります。
$ret = print "Hello World";
これは、print は一部の複雑な式で使用できるが、echo は使用できないことを意味します。同様に、コード内の echo ステートメントは、値を返す必要がないため、print ステートメントよりもわずかに高速に実行されます
。
上記はワイルドスピード 7 興行収入のリアルタイム更新を紹介しましたが、番組の速度ではなく、ワイルドスピード 7 興行収入のリアルタイム更新が含まれることを願っています。 PHP チュートリアルに興味のある友人に役立ちます。