2016-06-30 4 views
-1

書いた言語のサフィックス、単語、セクションを検出するためのスクリプトを書いてみたいと思います。文字列のマッチングが多く含まれるので、正規表現に基づいて記述したいと思います。PHPと正規表現のパフォーマンス

しかし、パフォーマンスに関する質問があります。たとえば、100以上の異なる正規表現があり、それらをすべて入力テキストに対して同時に照合したいとします。パフォーマンスにはどのような影響がありますか?

私は知っているように、正規表現の配列を作成し、それぞれループで実行するという2つのオプションがあります。もう1つは、すべての式を "|"巨大な正規表現の文字列を取得します。パフォーマンスの面でどちらが良いでしょうか?

これらのどれも論理的でない場合は、それを達成する別の方法を教えてください。

+2

。なぜ、[FastRouteの作者からのこの非常に優れた記事](http://nikic.github.io/2014/02/18/Fast-request-routing-using- regular-expressions.html)を読んでください。 - ここで彼はベンチマークを行い、正規表現の根拠について話します。 –

答えて

0

私は速くしているあなたを伝えることはできませんが、このミニテストスイートに両方のバージョンを実行します(と私たちの結果教えて:D)をすることができます一つの巨大な正規表現は、通常ははるかに高速です

$startA = microtime(true); 
for($i = 0; $i < 10000; $i++) 
{ 
    //First version 
} 
$endA = microtime(true); 

unset ($all, $your, $variables); 

$startB = microtime(true); 
for($i = 0; $i < 10000; $i++) 
{ 
    //Second version 
} 
$endB = microtime(true); 

echo $endA-$startA."<br />"; 
echo $endB-$startB."<br />";