为什么带有列表`append()`的Python`Memory Error`剩余大量RAM
我正在根据一组文本文件构建大型数据字典。当我阅读这些行并对其进行处理时,我append(dataline)
会列出一个清单。
在某些时候,会append()
产生Memory Error
异常。但是,看着崩溃时在Windows Task Manager中运行的程序,我看到4.3
GB可用空间和1.1 GB可用空间。
因此,我不理解例外的原因。
Python版本是2.6.6。我猜,唯一的原因是它无法使用更多的可用RAM。如果是这样,是否有可能增加拨款?
-
如果您使用的是32位版本的Python,则可能要尝试使用64位版本。
一个进程使用32位地址最多可以寻址4GB的RAM,但是通常情况下(取决于操作系统),获取的空间要少得多。听起来您的Python进程可能已达到此极限。64位寻址消除了此限制。
编辑
由于您询问的是Windows,因此以下页面具有相关性:Windows版本的内存限制。如您所见,每个32位进程的限制为2、3或4GB,具体取决于操作系统版本和配置。