Je m'inquiétais de la vitesse de la fonction de hachage, alors prenez note.
Comparez le classique (?) Md5 avec sha1 et murmurhash3. Exécutez 100 séries de 100 000 fois chacune et comparez les résultats. La machine que j'ai exécutée était MacBook Pro fin 2016 avec Intel Core i7 2,6 GHz Quad Core.
Fonction de hachage | temps(s) |
---|---|
md5 | 12.7691998482 |
sha1 | 13.9324979782 |
murmurhash3 | 2.75016593933 |
Ceci est le code de comparaison.
#!/usr/bin/env python
import timeit
def mmh3_test():
import mmh3
for i in range(0, 100000):
mmh3.hash(str(i))
def md5_test():
import hashlib
for i in range(0, 100000):
hashlib.md5(str(i)).hexdigest()
def sha1_test():
import hashlib
for i in range(0, 100000):
hashlib.sha1(str(i)).hexdigest()
if __name__ == '__main__':
import timeit
print(timeit.timeit("mmh3_test()", setup="from __main__ import mmh3_test", number=100))
print(timeit.timeit("md5_test()", setup="from __main__ import md5_test", number=100))
print(timeit.timeit("sha1_test()", setup="from __main__ import sha1_test", number=100))
Recommended Posts