MurmurHash.net
1.0.0
Implementação C# do Murmur Hash 2
Uso:
MurmurHash2.Hash("mystring");
MurmurHash2.Hash(byteArray);
Escrevi um pequeno benchmark para testar o número de colisões em 466 mil palavras (lista de todas as palavras em inglês retiradas daqui: https://github.com/dwyl/english-words) e o número de colisões é 22, o que considero um resultado muito bom.
string.GetHashCode()
padrão fornece 48 colisões na lista de 466 mil palavras.
Tempo decorrido (na lista de 466 mil palavras):
Hash | Tempo decorrido | Nº de colisões |
---|---|---|
MurmurHash2 | 104ms | 22 |
ObterHashCode | 47ms | 48 |
Nos números de 1
a 999999
(pense em CEPs), os resultados foram:
Hash | Tempo decorrido | Nº de colisões |
---|---|---|
MurmurHash2 | 234ms | 56 |
ObterHashCode | 121ms | 0 |
GetHashCode
é melhor com colisões aqui, mas MurMur brilha em textos mais longos.