导航

2013年8月20日

摘要: 之前网上看的若干算法,无非两个原则:坏字符原则、好后缀原则。按照算法所述实现了一个版本,但发现其效率还不如本文所述的实现方式。个人分析效率较低的原因可能是因为不断地向前找坏字符或者好后缀来确定跳跃距离导致的,不断的比对操作应该是影响效率的根源。下面贴一段实现较简单的方法,感谢之前的领导磊哥,实现参照了他的代码。PS:大概看了下ClamAV的BM实现,感觉很复杂。 1 #define BM_TAB_LEN (256) 2 3 uint64_t *InitBMTab(const uint8_t *In_ui8Pattern, uint64_t In_ui64PattLen) 4 { 5 ... 阅读全文

posted @ 2013-08-20 20:07 codeape 阅读(358) 评论(0) 推荐(0) 编辑