我是 Python 的新手,用 pygame 写一些东西,而且它是位图密集型的。以下是有关它的某些(当前)事实:
- 所有图形文件都有可能在程序实例的任何时候被重用。
- 如果我一开始就预加载所有内容,即使没有重复,它也会占用 1GB 以上的内存。
- 在(几乎)需要时加载图像并不难,即文件大小与内存使用量相比非常小,并且很容易预测接下来会发生什么。
有很多建议不要使用del,我不知道这是否适用于我的情况。我已经考虑过利用垃圾收集机制,通过实现一个资源管理器来保存对任何加载图像的唯一引用,它通过不同的图像来处理不同的图像,大致是通过删除一个引用同时重新加载另一个。
但是,我不太确定这是否真的在任何时候释放了任何内存,而且我不知道如何让 GC 真正持续地保持内存下降,因为 gc 调用似乎非常昂贵(并且默认情况下太不频繁)
所以总而言之,我想知道上面列出的方法是否值得一试,如果没有,我希望有人能教我其他方法,比如正确使用del,以及这是否适合 pygame。任何帮助将不胜感激。