我正在使用C#在大字符串中连续搜索多个字符串"关键字",这些字符串大于等于4kb.这段代码不断循环,睡眠不会在保持合理速度的同时降低CPU使用率.bog-down是关键字匹配方法.
我发现了一些可能性,并且它们都具有相似的效率.
1)http://tomasp.net/articles/ahocorasick.aspx- 我没有足够的关键字,因此这是最有效的算法.
2)正则表达式.使用实例级别,编译正则表达式. - 提供比我要求的更多功能,效率不够.
3)String.IndexOf. - 我需要做一个"智能"版本,因为它提供了足够的效率.循环遍历每个关键字并调用IndexOf不会削减它.
有谁知道我可以用来实现我的目标的任何算法或方法?