[PHP-users 29075] Re: Smarty の導入について

hirouserpgm@yahoo.co.jp hirouserpgm @ yahoo.co.jp
2006年 4月 22日 (土) 00:36:39 JST


廣瀬です
効率わるいですか。
下ソースの結果 1000個の置換です
start 0.72026500 1145633110
end 0.86440100 1145633110
0.144136
ちなみに、テンプレートのベンチマーク
http://www.massassi.com/bTemplate/benchmarks/

<?php
$search=array();
$replace=array();
for($i=0;$i<1000;$i++){
	$doc.='{#'.$i.'}'.'abcdefghijklmnopqrstuvwxyz<BR>';
	array_push($search,"'".'{#'.$i.'}'."'si");
	array_push($replace,'【置換No'.$i.'】');
}
$time_start = microtime();
echo "start $time_start <br>";
//------------------------------------------------------------------
処理
$replace_doc=preg_replace($search, $replace,$doc);
//------------------------------------------------------------------
$time_end = microtime();
echo "end $time_end <br>";
echo $time_end-$time_start;
echo "<br>";
echo $doc;
echo
'--------------------------------------------------------------------------------------<br>';
echo $replace_doc;
?> 



> Smarty自体がかなりのオーバーヘッドという事もありますが
、リクエスト毎に正規表現で
> 置き換えは効率が悪すぎます。
> 
> str_replaceにしても効率が悪い事には変わりません。単純
に変数の数だけスキャンしなく
> てはならなくなります。
> 
> 実際にどちらが効率が良いかはテンプレートによって異なる
のでベンチマークしてみない
> と分かりませんが、勘では置換型の方が遅いような気がしま
す。(バイトコードキャッシュ
> 有りの場合)


--------------------------------------
Celebrate Yahoo! JAPAN 10th Anniversary
http://pr.mail.yahoo.co.jp/10thann/


PHP-users メーリングリストの案内