0
我使用的是Ubuntu 64bit 12.04。我的机器有64个RAM。我正在运行一个脚本,我必须将〜9gig的数据存储到字典中。当内存不足时,python内存异常
这是一个简单的字典,其中键是30个字符,值只是一个整数。
但是,该脚本在大约58%的内存使用率时抛出内存异常。这里发生了什么?字典大小是否有最大限制?
我使用的是Ubuntu 64bit 12.04。我的机器有64个RAM。我正在运行一个脚本,我必须将〜9gig的数据存储到字典中。当内存不足时,python内存异常
这是一个简单的字典,其中键是30个字符,值只是一个整数。
但是,该脚本在大约58%的内存使用率时抛出内存异常。这里发生了什么?字典大小是否有最大限制?
我不认为有一个最大值限制了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
通过这种方式,至少你可以确保它是你的脚本吃了内存。
64演唱会?这是过分的...但仍然,内存使用看起来很奇怪。有没有其他的东西在运行? – Zizouz212 2015-02-06 00:49:07
你在做什么手术吗?你是否剥离了用于存储这些数据的代码? – taesu 2015-02-06 00:49:28
@ Zizou212 我从事基因组学研究。它需要很多内存。还有别的东西在运行,但它只有4%的内存。 – daemonk 2015-02-06 00:50:53