飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 455|回复: 32

[C/C++] 对SSE2模式匹配算法SSE2PatternFind的一点改造优化

[复制链接]
  • TA的每日心情
    擦汗
    昨天 08:09
  • 签到天数: 275 天

    [LV.8]以坛为家I

    发表于 7 天前 | 显示全部楼层 |阅读模式
    本帖最后由 xxHxx 于 2024-9-4 10:34 编辑

           为对某软件的指定模块打特征码补丁,最近研究学习了各种搜索算法(Sunday、Shift_And、BNDM等),对比发现,内存特征码搜索还是下面两位大佬基于SSE2指令集的搜索算法速度最快。
    于是认真学习了两位大佬的文章,根据自己的理解做了一点点改造和优化,分享给大家,欢迎拍砖!!!

    学习参考文章如下,感谢大佬们分享的好文!
    https://bbs.kanxue.com/thread-209946.htm
    https://www.52pojie.cn/thread-1854232-1-1.html

    主要改进:
    ①通过掩码的方式使其支持 前、中、后通配符 及半字节;
    ②通过SSE2指令集找到特征码字节序列中的第一个不为'??'的元素后,后续的字节只比较不是'??'的特征字节,优化比较字节数。

    通过测试,根据不同的特征码型式(特征码长度不同、通配符数量不同等),在我的环境中,比优化前(上面文章中代码)搜索速度提升5%~15%左右。

    本人不是计算机专业,也不从事相关工作,纯属业余爱好,代码难免错漏,更谈不上优雅,望各位大佬批评指正!

    20240904------判断特征码全都是'??'时,返回FALSE;修改结束搜索的条件。

    游客,如果您要查看本帖隐藏内容请回复



    评分

    参与人数 4威望 +5 飘云币 +4 收起 理由
    dryzh + 2 + 1 PYG有你更精彩!
    冷月孤心 + 1 + 1 PYG有你更精彩!
    飞天 + 1 + 1 感谢发布原创作品,PYG有你更精彩!
    hahacker + 1 + 1 发个完整的例子+代码吧。

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    昨天 01:49
  • 签到天数: 938 天

    [LV.10]以坛为家III

    发表于 7 天前 | 显示全部楼层
    感谢表哥的分享
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2023-11-2 22:04
  • 签到天数: 107 天

    [LV.6]常住居民II

    发表于 7 天前 | 显示全部楼层
    支持一下,虽然看不懂
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 07:41
  • 签到天数: 1512 天

    [LV.Master]伴坛终老

    发表于 7 天前 | 显示全部楼层
    感谢分享,学习一下
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    前天 23:31
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    发表于 7 天前 | 显示全部楼层
    支持一下,虽然看不懂
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 00:11
  • 签到天数: 295 天

    [LV.8]以坛为家I

    发表于 7 天前 | 显示全部楼层
    感谢分享,学习一下
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2022-3-27 17:06
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 7 天前 来自手机 | 显示全部楼层
    感谢分享,学习一下
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2 小时前
  • 签到天数: 677 天

    [LV.9]以坛为家II

    发表于 6 天前 | 显示全部楼层

    谢谢大佬的分享!
    回复学习一下
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表