首页
社区
课程
招聘
能否提高查表法的速度?将表放入CPU cache中?
发表于: 2013-6-18 11:20 4679

能否提高查表法的速度?将表放入CPU cache中?

2013-6-18 11:20
4679
现有一个算法,对BYTE型进行运算,我实验2种方法:
1.SSE一次运算16个
2.提前运算好,用查表法直接取结果

最后的性能分析是:查清法的耗时是SSE的3倍多(Release下)

所以我看是不是有办法提高查表法的速度?理论上CPU会自动将表放入cache中吧?
原以为查表会比运算快,结果却反过来差这么多

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 4984
活跃值: (3371)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
如果你的表可以按大小排列的话,可以用二分法查表
不能排列的话,根据表的特性,用一些算法去查表
2013-6-18 11:30
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
3
Cache也一样
2013-6-18 11:35
0
雪    币: 371
活跃值: (72)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
估计是查表的方法不对,
应该使用哈希函数,等等,来加快查表速度
2013-6-18 12:37
0
雪    币: 69
活跃值: (30)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
查表比较快。。。
当然如果你只是加法跟乘法的话大概是半斤八两的。
2013-6-18 13:00
0
雪    币: 174
活跃值: (620)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
我的表都不用查,直接命中:
pDst[x]=PT[pSrc[x]]
所以不是排列问题,也不是楼下说的哈希问题
2013-6-18 13:28
0
雪    币: 174
活跃值: (620)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
我的SSE也有好几十条指令,都是加减乘+移位
2013-6-18 13:29
0
游客
登录 | 注册 方可回帖
返回
//