假设我正在研究和调整布隆过滤器的散列函数,那么使用可能被广泛接受为“快速”的函数计算散列所需的最大循环数是多少?
答案 0 :(得分:2)
这取决于你想做什么。
如果您使用布隆过滤器来避免磁盘I / O,那么在散列函数中花费更多时间可能是有意义的,这样您就可以尽可能少地进行散列冲突。例如,Bloom过滤器用于避免log structured merge tree的磁盘I / O.通常使用cryptographically secure hash function是有意义的,但类似的内容,例如xxhash或MurmurHash。
如果要使用bloom过滤器来避免内存中查找,那么您可能希望使用更快的哈希函数,例如输入的XOR,或使用Fletcher checksum。
快速解释快速与慢速哈希函数的优缺点,以及一些测试are available here。