2016-06-30 5 views
-1

Я хочу написать скрипт для определения суффиксов, слов и разделов письменного языка. Он будет содержать много строк, поэтому я хочу написать его на основе регулярных выражений.Производительность Php и регулярного выражения

Но у меня есть вопрос о производительности. Например, предположим, что у нас есть более 100 различных регулярных выражений, и мы хотим сопоставить их одновременно для ввода текста. Как это повлияет на производительность?

У нас есть два варианта, как я знаю, создание массива регулярных выражений и их выполнение с помощью цикла. Другой объединяет все выражения с «|» и получить огромную строку регулярных выражений. Какой из них будет лучше с точки зрения производительности?

Если ни одно из них не является логичным, можете ли вы предложить мне другой метод для достижения этого?

+2

Огромным регулярное выражение, как правило, гораздо быстрее. Почему, прочитайте [этот отличный пост по той же теме, от автора FastRoute] (http://nikic.github.io/2014/02/18/Fast-request-routing-using-regular-expressions.html) - где он оценивает и говорит о nitty gritty regex. –

ответ

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 />"; 
Смежные вопросы