[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 メーリングリストの案内