MurmurHash.net
1.0.0
Implementación en C# de Murmur Hash 2
Uso:
MurmurHash2.Hash("mystring");
MurmurHash2.Hash(byteArray);
Escribí un pequeño punto de referencia para probar el número de colisiones en 466.000 palabras (lista de todas las palabras en inglés tomadas de aquí: https://github.com/dwyl/english-words) y el número de colisiones es 22, lo que considero un bastante buen resultado.
El estándar string.GetHashCode()
proporciona 48 colisiones en la lista de 466k palabras.
Tiempo transcurrido (en la lista de 466k palabras):
Picadillo | tiempo transcurrido | # de colisiones |
---|---|---|
MurmurHash2 | 104 ms | 22 |
Obtener código hash | 47 ms | 48 |
En los números del 1
al 999999
(piense en códigos postales), los resultados fueron:
Picadillo | tiempo transcurrido | # de colisiones |
---|---|---|
MurmurHash2 | 234 ms | 56 |
Obtener código hash | 121 ms | 0 |
GetHashCode
es mejor con las colisiones aquí, pero MurMur brilla en textos más largos.