Python: MemoryError(脚本有时会运行)

Python: MemoryError (scripts runs sometimes)

我有一个脚本有时会成功运行,提供所需的输出,但稍后重新运行时会出现以下错误:

numpy.core._exceptions.MemoryError: Unable to allocate 70.8 MiB for an array with shape (4643100, 2) and data type float64

我知道这个问题已经回答了好几次(比如 ),但到目前为止 none 的解决方案对我有用。我想知道是否有人知道为什么有时脚本运行良好,但片刻之后却出现错误?

我降低了计算机的 RAM 使用率,增加了虚拟内存,重新启动了我的笔记本电脑,none 似乎有所帮助(Windows 10,RAM 8.0GB,python 3.9.2 32 位)。

PS:很遗憾,无法共享 script/create 假人。

Python 是一种垃圾回收语言。 Garbage collection is non-deterministic。这意味着每次程序 运行 时的峰值内存使用量可能不同。所以第一次 运行 程序时,它的内存使用峰值小于可用内存。但是下次你 运行 程序时,它的内存使用峰值足以消耗所有可用内存。这假设主机系统上的可用内存是恒定的,这是一个不正确的假设。因此,可用内存的波动,即其他 运行ning 进程未使用的内存,是程序可能一次引发 MemoryError,但另一次无错误终止的另一个原因。

旁注:增加虚拟内存作为最后的手段。不是内存,跟内存一样用的是磁盘,比内存慢多了。