我有很长一段时间对应用程序进行了性能分析
事实证明,IndexOf函数
使用了大部分CPU这里的功能
public static string func_Fix_Google_Source(string srSource)
{
int irIndex = srSource.IndexOf("<div id=\"gt-form-c\">");
return srSource.Substring(irIndex);
}
弦的长度很重要?我可以缩短搜索字符串的长度,我相信
答案 0 :(得分:2)
如果子字符串搜索成为瓶颈,您可以切换到高级算法,例如KMP。
当你有很多“误报”时,默认字符串搜索可能非常昂贵,例如:很多
<div id="...
在被搜索的文本中。
每次在匹配未开始的位置发现上面的前缀时,默认算法会跟随它,以确认没有匹配,然后进入下一个位置。相比之下,KMP会跳过它已经看过的许多角色,从而提高了效率。
答案 1 :(得分:1)
除了改进搜索方式之外,您可能已经完成了评论,IndexOf(string)重载使用当前文化进行比较。
使用StringComparision重载进行序数搜索将提供更好的性能。取决于你在做什么~8x。
int irIndex = srSource.IndexOf("<div id=\"gt-form-c\">", StringComparison.Ordinal);