len
関数のパラメーターにどの値を指定する必要があるかについて混乱していMurmurHash3_x86_128()
ます(同様の関数もあります)。Murmurhash3 のコードはここにあります。
あなたの答えが鍵の長さだと言うなら、154行目のコードを説明してください。
len
関数のパラメーターにどの値を指定する必要があるかについて混乱していMurmurHash3_x86_128()
ます(同様の関数もあります)。Murmurhash3 のコードはここにあります。
あなたの答えが鍵の長さだと言うなら、154行目のコードを説明してください。
ほとんどの場合、154 行目のコードのバイト単位でハッシュするデータの長さです。
const int nblocks = len / 16;
この長さを 128 ビット ブロック (またはそれぞれ 16 バイト) に分割します。これは、MurmurHash3_x86_128()
反復ごとに 16 バイト (4 x uint32) を処理および混合するため、より高速なハッシュを促進するためです。
205 行目で次のことがわかります。
switch(len & 15)
これは、サイズが 16 の倍数でない場合に試行中のバイトをキャッチし、switch ケースがそれらを最終的なハッシュに結合します。