zlib和gzip的压缩比较

背景:压缩网页html文档并存储,压缩后能够减少数据库的负担

思路:使用python自带的zlib或gzip进行字符串内容的压缩

使用:压缩等级越高,所用时间越长

1. zlib(默认压缩等级为6@time_count
def zlib_compress():
    res = zlib.compress(html.encode())
    print('zlib压缩后%d' % len(res))
    res2 = zlib.decompress(res)
    print('zlib解压后%d' % len(res2))

2. gzip(默认压缩等级为9@time_count
def gzip_compress():
    res = gzip.compress(html.encode())
    print('gzip压缩后%d' % len(res))
    res2 = gzip.decompress(res)
    print('gzip解压后%d' % len(res2))

比较:通过比较zlib和gzip对同一html文档压缩解压前后字符串长度和方法运行时间得出结论
1. 记录方法运行时间的装饰器

def time_count(func):
    def wrap(*args, **kwargs):
        t1 = time.time()
        func(*args, **kwargs)
        t2 = time.time()
        return t2 - t1
    return wrap

2.分别运行zlib和gzip压缩解压的方法比较时间
设置压缩等级均为6时
zlib和gzip的压缩比较_第1张图片
将文档长度乘以1000倍后(压缩等级均为9)
zlib和gzip的压缩比较_第2张图片
均为默认值进行比较时
zlib和gzip的压缩比较_第3张图片

结论:直接用zlib就行,比gzip快不少。

你可能感兴趣的:(python)