【php】正規表現ってそんなに負荷が高いの?(その1)
実験の結果
(プログラマが書いた通常の用途の普通の正規表現なら)そんなに気にしなくていいと思う。
えらく適当な結論ですみません。
あるテキストから該当箇所を抜き出すとか、取得したHTMLのタグ、文字列の置換などの用途なら、正規表現の使用をお勧めします。
すっきり書けて十分高速です。
例)
HTMLの書き換えをおこなう(softelメモのトップページのHTMLを使った)。
h2要素、h3要素を、それぞれh3要素、h4要素に書き換えたい。
プログラムに対して細かい突っ込みは置いといて、ある環境で、この程度の処理をして競争させてみたということです。
$s = file_get_contents('test.html'); //ここから $s = preg_replace('|<h3(.*)</h3>|U', '<h4$1</h4>', $s); $s = preg_replace('|<h2(.*)</h2>|U', '<h3$1</h3>', $s); //ここまでの処理時間を計測
→ だいたい 0.000215秒
$s = file_get_contents('test.html'); //ここから $s = str_replace(array('<h3','</h3>','<h2','</h2>'), array('<h4','</h4>','<h3','</h3>'), $s); //ここまでの処理時間を計測
→ だいたい 0.000155秒
ほぼ同じことをしてくれるこの2つの処理、通常のWebサイトの応答時間の中でのこの処理時間は、負荷を気にしなくてよいほど十分高速だと思います。
コメント