为什么 Python `Memory Error` 列表 `append()` 留下大量 RAM

2024-04-14

我正在从一组文本文件构建一个大型数据字典。当我阅读并处理它们时,我append(dataline)到一个列表。

在某个时刻append()生成一个Memory Error例外。然而,在 Windows 任务管理器中观察该程序的运行情况,在崩溃时我看到 4.3 GB 可用空间和 1.1 GB 可用空间。

因此,我不明白异常的原因。

Python版本是2.6.6。我想,唯一的原因是它无法使用更多的可用 RAM。如果是这样,是否可以增加分配?


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

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

edit由于您询问的是 Windows,因此以下页面是相关的:Windows 版本的内存限制 http://msdn.microsoft.com/en-us/library/aa366778(v=vs.85).aspx。如您所见,每个 32 位进程的限制为 2、3 或 4GB,具体取决于操作系统版本和配置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Python `Memory Error` 列表 `append()` 留下大量 RAM 的相关文章

随机推荐