ホームページ >バックエンド開発 >PHPチュートリアル >プログラミング速度ではなくプログラム速度を追求_PHPチュートリアル

プログラミング速度ではなくプログラム速度を追求_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:51:48961ブラウズ

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 の使用法が pattern の使用法に似ているためです。 Perlでのマッチング。ただし、次のコードは、ereg_replace の代わりに str_replace を使用すると、コードの実行速度が大幅に向上することを示しています。

str_replace と ereg_replace の実行速度をテストします

//このコードは str_replace の実行速度をテストします


emphasis ?>

for ($i=0; $istr_replace ( i>, b>, $string)

}
?>

//このコードは、ereg_replace

の実行速度をテストします ($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。データベースでの共同操作の使用は、データベースのユニオン操作を使用して使用して使用しないようにします。ただし、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 < 3) {
include("somefile.$i"); を使用する必要があります。 ;
}



6. echo と print の違いに注意してください

PHP の echo と print の機能は基本的に同じですが、この 2 つには微妙な違いがあります。たとえば、次のコードを実行すると、変数 $res の値は 1 になります。
$ret = print "Hello World";
これは、print は一部の複雑な式で使用できるが、echo は使用できないことを意味します。同様に、コード内の echo ステートメントは、値を返す必要がないため、print ステートメントよりもわずかに高速に実行されます


http://www.bkjia.com/PHPjc/319053.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/319053.html技術記事 1. PHP の echo ステートメントの代わりに埋め込み HTML コードを使用します。 PHP は組み込み Web プログラミング言語であるため、HTML コードと PHP コードを相互に埋め込むことができます。しかし、多くのプログラマーは次のことを心配しています...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。