pickle和python数据结构

时间:2016-03-18 22:42:25

标签: python pickle

我有一些数据存储在内存中的树中,我经常使用pickle将树存储到磁盘中。 最近我注意到程序使用了大内存,然后我检查了保存的pickle文件,它大约是600M,然后我写了另一个小的测试程序将树加载回内存,我发现它需要将近10倍的内存( 5G)比磁盘上的大小,是正常的吗?什么是避免这种情况的最好方法?

1 个答案:

答案 0 :(得分:2)

不,这不正常。我怀疑你的树比你想象的要大。编写一些代码来遍历它并添加所有使用的空间(并计算节点)。

请参阅memory size of Python data structure

你究竟在问什么?你是否感到惊讶的是,磁盘上的600M数据结构在内存中是5G。这并不特别令人惊讶。 Pickle压缩数据,因此您希望它在磁盘上更小。它小了10倍(大致),非常好。

如果您对自己的数据大小感到惊讶,那就是另一回事。