2016-06-30 1 views
-1

서면 언어의 접미사, 단어 및 섹션을 검색하는 스크립트를 작성하고 싶습니다. 문자열 일치가 많이 포함되므로 정규 표현식을 기반으로 작성하고 싶습니다.PHP 및 정규 표현식 성능

하지만 성능에 대한 질문이 있습니다. 예를 들어, 우리가 100 개 이상의 다른 정규식을 가지고 있고 그것들을 모두 입력 텍스트와 동시에 일치시키고 싶다고합시다. 성능에 어떤 영향을 미칩니 까?

정규식의 배열을 만들고 루프로 각각 실행하는 두 가지 옵션이 있습니다. 또 하나는 모든 표현식을 "|" 거대한 정규 표현식 문자열을 얻는 것. 성능면에서 어느 것이 더 낫겠습니까?

이들 중 어느 것도 논리적이지 않은 경우이를 달성하기위한 다른 방법을 제안 해 주시겠습니까?

+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 />";