PHPプログラム加速探索[6]--コード最適化


<2>加速
◆コード最適化
PEAR::BenchMark、今あなたはすでにどのようにあなたのコードをテストするかを知っていて、どのようにあなたのコードが速いか遅いかを判断するかを知っていて、どの部分が遅いかを知っています.次に私が言いたいのは、遅いコードを消滅または最適化する方法です.
この点で私個人の最も主要な経験は2つしかありません.1つは間違いを解消するか、低効率な循環です.2つ目は、データベース・クエリー・ステートメントの最適化です.「str_replaceはereg_replaceより速い」、「echoはprintより速い」など、他の最適化の詳細もあります.これらはしばらく置いておきますが、後でキャッシュで頻繁すぎるIOに対処することについてお話しします.
以下では,3つの機能は同じであるが,プログラム書き方が異なる関数の効率(消費時間)を比較する.
badloops.php <?php require_once( 'Benchmark/Iterate.php' ); define ( 'MAX_RUN' , 100 ); $data = array( 1 , 2 , 3 , 4 , 5 ); doBenchmark ( 'v1' , $data ); doBenchmark ( 'v2' , $data ); doBenchmark ( 'v3' , $data ); function doBenchmark ( $functionName = null , $arr = null ) { reset ( $arr ); $benchmark = new Benchmark_Iterate ; $benchmark -> run ( MAX_RUN , $functionName , $arr ); $result = $benchmark -> get (); echo '<br>' ; printf ( "%s ran %d times where average exec time %.5f ms" , $functionName , $result [ 'iterations' ], $result [ 'mean' ] * 1000 ); } function v1 ( $myArray = null ) { // for ( $i = 0 ; $i < sizeof ( $myArray ); $i ++) { echo '<!--' . $myArray [ $i ] . ' --> ' ; } }


function v2 ( $myArray = null ) { // $max = sizeof ( $myArray ); for ( $i = 0 ; $i < $max ; $i ++) { echo '<!--' . $myArray [ $i ] . ' --> ' ; } } function v3 ( $myArray = null ){ // echo "<!--" , implode ( " --> <!--" , $myArray ), " --> " ; } ?>

v1 ran 100 times where average exec time 0.18400 ms
v2 ran 100 times where average exec time 0.15500 ms
v3 ran 100 times where average exec time 0.09100 ms

, , 。

v1sizeof()v2 $myArray $max , , 。 v3 , , 。

, 。 , 。 , :-) , 。

PHP , 。 , 。 :

http://www.phpe.net/articles/340.shtml

http://www.phpe.net/articles/323.shtml

http://club.phpe.net/index.php?s=&act=ST&f=15&t=4783&st=0

( )

MySQL