我正在制作一款拥有大量高清图像的游戏,速度为30 FPS,因此对于这种特殊情况,性能是一个很大的问题。 我正在检查内存消耗,并意识到一组图像,在硬盘驱动器中有2~3mb,当加载到游戏时,它占用了30mb。有没有办法在不影响CPU使用率的情况下降低内存消耗?
答案 0 :(得分:0)
您正在谈论图像文件的集。但是,这些图像文件很可能是压缩的,因此文件较小。要查找所有图像的未压缩大小,您应该计算每个图像的内存占用量(最有可能width * height * bytes per pixel
(RGB为3个字节,RGBA为4个)。与30 MB内存占用量相比如何? (例如,一个1680x1080屏幕的RGB图像,屏幕需要~5.3 MB的内存)?
回答你的问题:我认为你不会轻易减少应用程序的内存占用(不会牺牲CPU)。显卡(GPU)能够处理压缩的纹理/图像(例如DXT),似乎PyGame也可能(在PyGame Surface documentation中搜索'压缩'),但我不能在PyGame中找到任何可以让你选择是否需要压缩纹理或纹理实际所在的位置(视频内存,操作内存,两者)。它可能取决于您运行的操作系统和硬件。
一种方法可能是降低文件的分辨率或仅加载特定场景所需的文件。
对PyGame有更好了解的人可能会提供进一步的见解。