我有如下所示的代码,它正在做正则表达式比较,我想优化代码。当我使用 .net 分析器检查时,它显示 80 % 的时间在这里花费,我检查了我的正则表达式过滤器是否发生任何回溯,但在正则表达式方面没有任何问题。所以这是现有的代码
public class TestFilter : SmoothFilter
{
public override bool Apply(Team liveEvent)
{
// Apply each individual piece of the filter using the Match method
if ((Filter == null) || (Filter.Length <= 0) || Match(Filter, pl.Instance))
{
}
private bool Match(string pattern, string inputdata)
{
bool vals = Regex.IsMatch(inputdata, pattern, RegexOptions.IgnoreCase);
return vals;
}
}
当我用谷歌搜索时,我看到了链接http://blog.kurtschindler.net/post/regular-expression-performance-comparisons,如果您不花费初始启动时间,则提到了最佳和更快的方法。所以我修改了我的代码,如下所示。但是我移动了我的系统,我没有任何工具可以分析,任何人都可以告诉我它是否真的有所改善?下面这个修改过的代码
static readonly Regex regexForMethod_E = new Regex("pattern", RegexOptions.Compiled);
private bool Match(string pattern, string inputdata)
{
bool vals = regexForMethod_E.IsMatch("inputdata");
return vals;
}
编辑
我仍然不知道如何在 Match() 方法中移动正则表达式实例化