2015-02-06 62 views
0

我使用的是Ubuntu 64bit 12.04。我的機器有64個RAM。我正在運行一個腳本,我必須將〜9gig的數據存儲到字典中。當內存不足時,python內存異常

這是一個簡單的字典,其中鍵是30個字符,值只是一個整數。

但是,該腳本在大約58%的內存使用率時拋出內存異常。這裏發生了什麼?字典大小是否有最大限制?

+0

64演唱會?這是過分的...但仍然,內存使用看起來很奇怪。有沒有其他的東西在運行? – Zizouz212 2015-02-06 00:49:07

+0

你在做什麼手術嗎?你是否剝離了用於存儲這些數據的代碼? – taesu 2015-02-06 00:49:28

+0

@ Zizou212 我從事基因組學研究。它需要很多內存。還有別的東西在運行,但它只有4%的內存。 – daemonk 2015-02-06 00:50:53

回答

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 

通過這種方式,至少你可以確保它是你的腳本吃了內存。