作者: | 来源:互联网 | 2023-12-11 17:42
本文介绍了在Python中使用zlib模块进行字符串的压缩与解压缩的方法,并探讨了其在内存优化方面的应用。通过压缩存储URL等长字符串,可以大大降低内存消耗,虽然处理时间会增加,但是整体效果显著。同时,给出了参考链接,供进一步学习和应用。
今天在用Streaming-Python处理一个MapReduce程序时,发现reducer失败,原因为耗费内存达到极限了!仔细查看代码时,发现有一个集合里保存着URL,而URL长度是比较长的,直接保存确实是耗费内存,于是想到用压缩存储,然后用的时候再解压,虽然处理时间增加,但是耗费内存大大降低!
具体就是使用zlib模块
import zlib
raw_data = "hello,world,ooooooooooooxxxxxxxxxxx"
zb_data = zlib.compress(raw_data)
print "len(raw_data)=%d, len(zb_data)=%d, compression ratio=%.2f" % (len(raw_data), len(zb_data), float(len(zb_data))/len(raw_data))
# len(raw_data)=35, len(zb_data)=25, compression ratio=0.71
raw_data2 = zlib.decompress(zb_data)
print raw_data2
参考:http://my.oschina.net/1123581321/blog/176570
Python中字符串的解压缩