【问题标题】:Python - Using cPickle to load a previously saved pickle uses too much memory?Python - 使用 cPickle 加载以前保存的泡菜会占用太多内存?
【发布时间】:2010-07-22 03:31:03
【问题描述】:

Python - 使用 cPickle 加载之前保存的 pickle 占用过多内存?

我的 pickle 文件大约 340MB,但在加载时占用了 6GB 内存的 29%。这似乎有点过分了。 pickle 文件是字典的字典。这样合适吗?
使用的代码:

import cPickle as pickle

file = pickle.load( file_handle )

谢谢

【问题讨论】:

  • 您如何测量内存使用情况?大约 1.8GB 中的一部分是否可以作为临时存储空间,由垃圾收集器回收?

标签: python memory-management pickle


【解决方案1】:

我总是对大泡菜和子字典有记忆问题。所以我最终通过 pprint 将我的对象写入文件,然后我通过自定义模块加载器导入这些文件,以将数据返回到进程范围内。工作正常,不浪费内存。

【讨论】:

    【解决方案2】:

    大约 1.7GB 似乎有点多,但并非不可能。数据在被腌制之前占用了多少内存?

    unpickling 后的数据应该占用与 pickle 前相同的内存量,它在磁盘格式中的大小并不那么重要。

    【讨论】:

    • 好吧,我想可能是这样的。我将在构建时检查内存使用情况。谢谢。
    猜你喜欢
    • 2013-07-11
    • 2020-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-14
    • 2015-10-14
    • 2013-07-18
    相关资源
    最近更新 更多