您的位置:首页 > 其它

内存搜索

2013-11-28 11:56 141 查看
我这段时间正好涉及到内存搜索问题,有几点感受说明一下:

一、要考虑语言的因素(如VB指针功能太弱,执行效率较低),建议采取C++或MASM32写比较代码。

二、要考虑内存对齐情况,将被查找子串转换为4的倍数的数据(32位机),速度会大幅提升。

三、如果不考虑移植性,可采用MMX、SSE或SSE2指令进行优化,但AMD的CPU不支持。

四、尽量避免使用二次循环语句,速度将呈几级数增加。

在循环体内外判断子串长度,若为1则无需优化,为2-3使用short,4-7使用long,8以上使用double。

比如要查找的子串为"Hello",那么可以首先将"Hello"截为一个4位的子串"Hell",然后转换为一个LONG。再以LONG的类型循环访问目标内存数据,比较二者是否相等,若相等,则为"Hell",然后后再进一步比较是否为"Hello"。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: