我对应该为len
函数中的MurmurHash3_x86_128()
参数提供什么值感到困惑(并且还有类似的函数)。可以找到murmurhash3代码here。
如果您的答案是密钥的长度,请在第154行解释代码。
答案 0 :(得分:4)
大部分肯定是在字节中散列的数据长度,第154行的代码:
const int nblocks = len / 16;
将此长度划分为128位块(或每个16位),这是为了促进更快的散列,因为MurmurHash3_x86_128()
每次迭代处理并混合16个字节(4 x uint32)。
你会在第205行注意到:
switch(len & 15)
如果大小不是16的倍数,则捕获任何试验字节,并且switch case将它们组合成最终的散列。