LoginSignup
1
3

More than 5 years have passed since last update.

murmurhash3とmd5とsha1を速度比較する

Posted at

ハッシュ関数の速度が気になったのでメモ。

古典的(?)なmd5とsha1とmurmurhash3を比較する。それぞれ10万回を100セット実行して結果を比較。実行したマシンはMacBook Pro Late 2016でIntel Core i7 2.6GHz Quad Coreのやつ。

ハッシュ関数 時間(s)
md5 12.7691998482
sha1 13.9324979782
murmurhash3 2.75016593933

比較用のコードはこれ。

#!/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))
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3