有没有办法删除 Pygame 个曲面?或者以任何方式将它们从内存中删除以提高性能?

Is there a way to delete Pygame Surfaces? Or any way to remove them from memory to increase performance?

我在我的 pygame 文件中 blit 表面,但问题是它们只是停留在那里。我的(希望是临时的)解决方案是在不使用它们时将它们移离 window 很远(即 (-5000,0) ),但这会降低每次我 blit 新表面时的性能。有什么办法可以删除它们吗? del好像没有做。

当Python 的垃圾收集清理它时,当不再引用它时,Surface 的内存被释放。

您不需要使用 del,只需编写您的程序,这样您就不会在任何地方引用未使用的表面。如果没有,您可以将 None 分配给它。

有时您不需要一直创建新的表面,而是可以只使用已有的表面。但它也可以很好地创建新的并让 Python 清除旧的。我已经编写了一些屏幕保护程序,例如 Pygame 用于 VJing 和安装的可视化工具,并且已经 运行 好几天了,不断向屏幕添加新图像并删除旧图像,没有内存泄漏。从来不需要 del.