2

我的程序运行一个模拟,它需要巨大的对象来存储数据。blob 的大小大于 2-3GB。即使我的 MBP 中应该有足够的内存,python(Mac OS X 上的 Python 2.7.3,来自端口)似乎无法全部使用它,并且系统完全冻结。

为了保存模拟的状态,我使用了pickle,但它也不适用于太大的对象,似乎pickle会在转储之前复制内存中的对象......

问题:是否有一个标准库可以处理巨大的 python 数据结构(dict、set、list),而不会将它们一直保存在内存中?或者有没有办法强制 python 在虚拟内存中运行?(我对 numpy 不是很熟悉,在这种情况下对我有帮助吗?)

提前致谢!

4

1 回答 1

2

如果您使用的是 64 位版本的 Python,但仍然遇到pickle其他内置模块或其他内置模块的问题,则可以将 Python 对象存储在面向对象的数据库中。我们每天都在这里处理大型对象(~10GB),并为此使用ZODB。这不是最快的,但可以完成工作。

我还听说dobbin可能是一个不错的选择。

于 2012-12-27T13:31:26.087 回答