分配1.6 GB此代碼生成一個MemoryError
:無法在Python
from pylab import complex128
import numpy
x = numpy.empty(100000000, dtype=complex128) # 100 millions complex128
我有Win7的64 8 GB RAM(至少5.3運行此代碼時GB免費)。我使用Python 2.7(Anaconda),我認爲它是32位版本。即使使用32位,我們也應該能夠處理1.6 GB!
你知道如何解決這個問題嗎? PS:我預計有一個數億的項目,每一個使用16個字節(128位)來使用16 * 100百萬= 1.6 GB。這被確認:
x = numpy.empty(1000000, dtype=complex128) # 1 million here
print x.nbytes
>>> 16000000 # 16 MB
你怎麼知道列表只有1.5GB小?在嘗試分配額外的1.5GB之前,您是否測量了進程內存使用量?已經使用了多少內存? 32bit意味着每個進程的理論上限爲2GB。 –
128位=每個項目16個字節。 1億1千萬次16是約。 1.6 GB。 – Basj
這假定沒有開銷。 –