我的程序运行了一个模拟,它需要巨大的对象来存储数据。斑点的大小大于2-3 3GB。尽管我的MBP应该有足够的内存,python (在Mac上的Python2.7.3,从端口)似乎不能使用所有的内存,并且系统完全冻结。
为了保存模拟的状态,我使用了pickle,但它对太大的对象也不起作用,似乎pickle会在转储对象之前复制内存中的对象……
问:有没有一个标准库可以处理巨大的python数据结构(dict,set,list),而不需要一直保存在内存中?或者,有没有办法强制python在虚拟内存中运行?(我不太熟悉numpy,在这种情况下它会对我有帮助吗?)
提前感谢!
发布于 2012-12-27 21:31:26
如果您使用的是64位版本的Python64位版本,但仍然在使用pickle或其他内置模块时遇到问题,则可以将Python对象存储在面向对象的数据库中。我们每天都在处理大型对象(大约10 We),并使用ZODB。它不是最快的,但可以完成工作。
我还听说dobbin可能是一个很好的选择。
https://stackoverflow.com/questions/14055373
复制相似问题