为什么带有列表`append()`的Python`Memory Error`剩余大量RAM

发布于 2021-01-29 19:01:18

我正在根据一组文本文件构建大型数据字典。当我阅读这些行并对其进行处理时,我append(dataline)会列出一个清单。

在某些时候,会append()产生Memory Error异常。但是,看着崩溃时在Windows Task Manager中运行的程序,我看到4.3
GB可用空间和1.1 GB可用空间。

因此,我不理解例外的原因。

Python版本是2.6.6。我猜,唯一的原因是它无法使用更多的可用RAM。如果是这样,是否有可能增加拨款?

关注者
0
被浏览
48
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    如果您使用的是32位版本的Python,则可能要尝试使用64位版本。

    一个进程使用32位地址最多可以寻址4GB的RAM,但是通常情况下(取决于操作系统),获取的空间要少得多。听起来您的Python进程可能已达到此极限。64位寻址消除了此限制。

    编辑
    由于您询问的是Windows,因此以下页面具有相关性:Windows版本的内存限制。如您所见,每个32位进程的限制为2、3或4GB,具体取决于操作系统版本和配置。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看