Python进程没有按照预期管理内存,导致进程被杀死。

Details:

我正在用Python做一个管理巨大图像数据的应用程序(数百个32位3000x3000像素的图像)。我试图通过遵循OOP原则,以最节省存储空间和内存的方式管理数据,以优化的格式保存数据,以最小的批次加载数据,并将几乎所有的变量保持在 "主 "范围之外。

然而,我正面临一个我无法诊断的问题。运行一个方法后,内存使用率从40%猛增到80%。这个方法打开了多个堆栈的图像,在 纳帕里 所以预计会使用这么多的内存(尽管如此,我应该优化它)。

这个问题出现在 退出这个方法,因为内存没有被释放。这意味着运行该方法两次或之后执行任何其他紧张的工作都会填满内存并使程序崩溃。该方法在 "main "范围外运行。我在运行这个方法之前和之后都打印了 "main "作用域中的局部和全局变量。

Before the issue:

After the issue: