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.