MurmurHash.net
1.0.0
Implementasi C# dari Murmur Hash 2
Penggunaan:
MurmurHash2.Hash("mystring");
MurmurHash2.Hash(byteArray);
Saya menulis patokan kecil untuk menguji jumlah tabrakan pada 466 ribu kata (daftar semua kata bahasa Inggris diambil dari sini: https://github.com/dwyl/english-words) dan jumlah tabrakan adalah 22 yang saya anggap sebagai hasilnya cukup bagus.
string.GetHashCode()
menghasilkan 48 tabrakan pada daftar 466 ribu kata.
Waktu yang berlalu (pada daftar 466 ribu kata):
hash | Waktu yang telah berlalu | # tabrakan |
---|---|---|
MurmurHash2 | 104 ms | 22 |
DapatkanHashCode | 47 ms | 48 |
Pada angka 1
sampai 999999
(pikirkan kode pos) hasilnya adalah:
hash | Waktu yang telah berlalu | # tabrakan |
---|---|---|
MurmurHash2 | 234 ms | 56 |
DapatkanHashCode | 121 ms | 0 |
GetHashCode
lebih baik dengan tabrakan di sini, tetapi MurMur lebih cocok untuk teks yang lebih panjang.