Python中的内存错误解决方案

时间:2012-03-27 11:48:10

标签: python memory-management

我正在使用包含大字符串值的dicts加载很多对象。总的来说,该程序超过2GB并崩溃。它不会超过太多,但我以后可能会有更大的数据。

似乎Python 32bit无法访问更多内存。我想将来我需要一些对象数据库系统,它能够处理大数据并且仍然不会太慢(即存储在DB或硬盘中,但保留一些内存以提高速度)。为了提高性能,我不想只在MySQL中保存数据,而是采用一些透明的机制,尽可能地保留在内存中。

你能想出一个处理对象中这么多数据的好方法吗?

2 个答案:

答案 0 :(得分:4)

根据您的数据结构的复杂程度,请查看以下内容:

memcached

键值存储,该死的快('O(1)所有'),扩展到许多机器,用于缓存(不持久)。有持久和加载数据的解决方案,甚至memcachedb

mongoDB

JSON存储,可以包含除主键以外的索引,可以扩展到多台计算机,具有自动分片和自动故障转移,持久性。支持非常快速的插入,原子操作,一种用于复杂查询的内置map-reduce。

redis

键值存储,值可以是结构化的。有许多高级操作,原子操作,发布/订阅,主从复制。完全在RAM中运行,但持久性机制有限。

考虑重新制定问题的标题,例如“选择什么内存数据库”会提供更多信息。

答案 1 :(得分:1)

您没有提及您使用哪种操作系统。 Linux下的AFAICT这个问题不存在,所以我想你的意思是Windows。

我曾经遇到过这个问题并用这种方法解决了这个问题:

  

我刚刚为我的PC @ work添加了一些内存,现在想要Python了   能够利用它。

     

我的boot.ini已经包含/ 3GB开关了很长一段时间,但是   尽管如此,我只能在Python中分配2 GB。

     

所以我用我从中获取的imagecfg.exe更改了python.exe   http://blog.schose.net/index.php/archives/207它现在有效。

     

这只是FYI,对于你们中的一个人希望能够做到的情况   所以。

     

但请注意,有副作用并非不可能。