SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

【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サイトの応答時間の中でのこの処理時間は、負荷を気にしなくてよいほど十分高速だと思います。

関連するメモ

コメント