【发布时间】:2013-06-13 18:31:15
【问题描述】:
我想实现一个进入高速缓存的哈希函数。最初,我有 20 位输入,我需要将此输入散列为 7 位。
我的缓存是 128x4。
我尝试了不同的哈希函数,但结果不是很好(我得到了 60% 的命中率)。我正在考虑使用 MD5 算法,但也许有更好的方法。我在网上阅读了一个MD5的实现,但我没有得到它。
【问题讨论】:
-
这个不清楚,你说的“进入缓存的哈希函数”是什么意思?
-
哈希函数的输出是缓存的索引。
-
查看@Mdlg 中的答案 SO“可以使用 CRC32C 作为基础构造一个“好的”哈希函数吗?”。我在使用 CRC 进行哈希方面取得了相当大的成功。
-
MD5 不是一个好主意,你想要一个可以快速计算的哈希函数,计算 MD5 非常复杂,并且需要在加密上下文中使用。
-
你能发布更多参数吗?我认为
x4是四路组关联的,但是缓存线有多大?你会在硬件中实现这个吗?你使用什么样的测试模式?这个缓存是用于特殊应用还是通用 CPU 缓存?
标签: c algorithm caching hash hashcode