Ich war besorgt über die Geschwindigkeit der Hash-Funktion, machen Sie sich also eine Notiz.
Vergleichen Sie den klassischen (?) Md5 mit sha1 und murmurhash3. Führen Sie 100 Sätze zu je 100.000 Mal aus und vergleichen Sie die Ergebnisse. Die Maschine, die ich lief, war MacBook Pro Ende 2016 mit Intel Core i7 2,6 GHz Quad Core.
Hash-Funktion | Zeit(s) |
---|---|
md5 | 12.7691998482 |
sha1 | 13.9324979782 |
murmurhash3 | 2.75016593933 |
Dies ist der Code zum Vergleich.
#!/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))