我有一個正則表達式可以從字符串中去除布爾條件。我執行了一些基準測試,並且我注意到運行這個正則表達式替換一個字符串1000次需要5-11秒。我對正則表現很新,但這似乎很慢。RegEx性能優化
這裏是正則表達式:"\bAND\b|\bOR\b|""|\(|\)"
這是預期表現,或可我重新寫我的正則表達式來改善服務表現。任何幫助將不勝感激
基準代碼:
Regex booleanRegex = new Regex(@"\bAND\b|\bOR\b|""|\(|\)",
RegexOptions.IgnoreCase | RegexOptions.Compiled);
Stopwatch t = new Stopwatch();
var inputString = "AND project manager";
t.Start();
for(int i = 0; i < 1000; i++)
{
booleanRegex.Replace(inputString,"");
}
t.Stop();
var regex = t.ElapsedMilliseconds;
regex.Dump();
在使用之前編譯它可能會有所幫助。也取決於字符串有多大 – Ben
請顯示您的基準代碼。無論您的基準測試是錯誤的,還是您運行它的文本都非常長。 – dasblinkenlight
您是否多次運行過您的基準測試?可能會出現一些JIT延遲。 – driis