压缩内存中的Python对象 [英] Compress Python Object in Memory

查看:64
本文介绍了压缩内存中的Python对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

关于使用Python压缩文件的大多数教程都涉及立即将文件写入磁盘,而中间没有经过压缩的python对象。我想知道如何腌制然后压缩内存中的python对象,而无需写入磁盘或从磁盘读取数据。

Most tutorials on compressing a file in Python involve immediately writing that file to disk with no intervening compressed python object. I want to know how to pickle and then compress a python object in memory without ever writing to or reading from disk.

推荐答案

我用它在一个地方保存内存:

I use this to save memory in one place:

import cPickle
import zlib

# Compress:
compressed = zlib.compress(cPickle.dumps(obj))

# Get it back:
obj = cPickle.loads(zlib.decompress(compressed))

如果 obj 引用了许多小对象,则可以减少很多内存的使用。由于每个对象的内存开销以及内存碎片,Python中的许多小对象加起来了。

If obj has references to a number of small objects, this can reduce the amount of memory used by a lot. A lot of small objects in Python add up because of per-object memory overhead as well as memory fragmentation.

这篇关于压缩内存中的Python对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆