测试python计算MD5和CRC的速度

  大量数据想均匀分布到不同的数据库存储,当前方法将key进行MD5或CRC计算,取最后一位分别对应到相应的存储位置。测文本17721088行。
两个脚本如下:
MD5部分

import hashlib
import time

file_list = open('di.txt')
start =time.time()
for get_str in file_list:
    if get_str[-1] == '\n':
        get_str = get_str[:-1]
    get_crc = hashlib.md5(get_str).hexdigest()
    #print get_crc
end = time.time()
print end-start

CRC部分

import zlib
import time

file_list = open('di.txt')
start =time.time()
for get_str in file_list:
    if get_str[-1] == '\n':
        get_str = get_str[:-1]
    get_crc = zlib.crc32(get_str) & 0xffffffff
end = time.time()
print end-start

md5计算用58.81秒,crc计算用27.06秒。CRC速度比md5快一倍。但是MD5是16进制,CRC是十进制。如果要将CRC转为16进制,所用时间和MD5用时相似。

发表评论

电子邮件地址不会被公开。 必填项已用*标注