我的程序运行一个模拟,需要巨大的对象来存储数据。blob 的大小大于 2-3GB。尽管我的 MBP 应该有足够的内存,但 python(Mac OS X 上的 Python 2.7.3,来自 ports)似乎无法全部使用,并且系统完全卡住。
为了保存模拟的状态,我使用pickle,但它也不适用于太大的对象,似乎pickle会在转储它们之前在内存中复制对象......
问题:是否有一个标准库可以处理巨大的 Python 数据结构(字典、集合、列表),而无需始终将它们保留在内存中?或者有没有办法强制 python 在虚拟内存中运行? (我对 numpy 不太熟悉,在这种情况下它对我有帮助吗?)
提前致谢!
最佳答案
如果您使用的是 64 位版本的 Python,并且仍然遇到 pickle
或其他内置模块的问题,您可以将 Python 对象存储在面向对象的数据库中。我们每天都在处理大型对象(~10GB)并使用 ZODB为了那个原因。它不是最快的,但可以完成工作。
我还听说dobbin可能是一个不错的选择。
关于python - 在Python中处理巨大的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14055373/