背景:压缩网页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时
将文档长度乘以1000倍后(压缩等级均为9)
均为默认值进行比较时
结论:直接用zlib就行,比gzip快不少。