我正在使用C#來連續搜索大字符串中的多個字符串「關鍵字」,這是大於4kb。這段代碼不斷循環,睡眠不會在保持合理的速度的同時減少足夠的CPU使用。緩衝是關鍵字匹配方法。C#:高效地搜索大字符串發生其他字符串
我發現了一些可能性,它們都具有相似的效率。
1)http://tomasp.net/articles/ahocorasick.aspx - 我沒有足夠的關鍵字使其成爲最有效的算法。
2)正則表達式。使用實例級別,編譯正則表達式。 - 提供比我需要的更多功能,效率不夠。
3)String.IndexOf。 - 我需要做一個「智能」版本,因爲它提供了足夠的效率。循環訪問每個關鍵字並調用IndexOf不會削減它。
有誰知道任何算法或方法,我可以用來實現我的目標?
拾遺從下面的評論,字符串的轉換的迴避信息,並保持在東西[字節數組](http://stackoverflow.com/a/283648/512671)可能是最快的;併爲字節數組實現一個定製的Boyer-Moore更快 – zanlok 2013-03-22 18:51:02