2009/04/15

htmlテンプレート置換処理時間の検証

fileでテンプレートのhtmlを取得し、埋め込まれた変数を置換する場合、array_searchでとか書かれた部分の位置を取得し、forでfileで取得したテンプレートの該当部分だけを置換するのは良いとして、array_walkで、arrayに対して$_SERVER["arg"]とかで総当り置換をかける場合と、fileで取得したarrayを通常の変数に.=してしまってから、str_replaceやpreg_replaceした方が早いか気になっていたので検証してみた。

やることはそのまんまで、置換要素をfor1~1000で用意して、array_walkする場合と、fileを通常変数化してからforの中でstr_replaceしてみると、

array_walkのが早かった。
step数はかなり多いのになぁ。

厳密にはfileじゃなくてfopenとかfile_get_contentsでやってみたが、array_walkに負けた。

テンプレート配列への1000個の要素置換で0.18秒 と0.14秒ぐらいの差。

よほど他の処理が重くなければ、テンプレート置換処理自体はさほどの処理影響を与えないともいえる。
というか1000個も要素あっても画面的にみにくくてしょうがないので、現実的にはもっと置換要素は少ないはずでしょぅ。

うまー。

0 件のコメント:

コメントを投稿