没有完全内存使用时的python内存异常

时间:2015-02-06 00:47:16

标签: python dictionary

我使用的是Ubuntu 64bit 12.04。我的机器有64GB的RAM。我正在运行一个脚本,我必须将~9gig的数据存储到字典中。

这是一个简单的字典,其中键是30个字符,值只是一个整数。

但是,该脚本在内存使用率约为58%时会抛出内存异常。这里发生了什么?字典大小有最大限制吗?

1 个答案:

答案 0 :(得分:1)

我不认为有一个最大值限制了Python中字典的大小。假设您的脚本在Unix下运行,您可以通过标准库模块resource增加进程可以使用的内存限制。

>>> import resource
>>> resource.setrlimit(resource.RLIMIT_AS, (10**9, 10**9))

您可能还希望使用resource.getrusage()功能定期检查内存使用情况。生成的对象具有属性ru_maxrss,它为调用进程提供了总内存使用量。

>>> import resource
>>> resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
>>> 20631552

通过这种方式,至少可以确保它是你的脚本吃掉了内存。