2011-11-24 43 views

回答

3

Apache的正則表達式似乎是derived from PCRE所以你可以使用pcretest進行基準測試,並得到他們如何執行的線索。

下面是使用一百萬個測試匹配和三個不同測試輸入計算兩個表達式的結果。輸出是每場比賽的平均執行時間。

$ pcretest -tm 1000000 -q 
    re> /^([a-z]{2,8})$/ 
data> a 
Execute time 0.0002 milliseconds 
No match 
data> aaaaaaaa 
Execute time 0.0003 milliseconds 
0: aaaaaaaa 
1: aaaaaaaa 
data> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
Execute time 0.0006 milliseconds 
No match 
data> 

$ pcretest -tm 1000000 -q 
    re> /^(.*)$/ 
data> a 
Execute time 0.0003 milliseconds 
0: a 
1: a 
data> aaaaaaaa 
Execute time 0.0003 milliseconds 
0: aaaaaaaa 
1: aaaaaaaa 
data> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
Execute time 0.0005 milliseconds 
0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
data> 

他們似乎有類似的執行時間,大約2-3億每秒場比賽我的測試機上。但真正的問題是,爲什麼你懷疑重寫規則的匹配時間是一個問題?

相關問題