我正在创建一个具有大量高清图像的游戏,速度为 30 FPS,因此对于这种特殊情况,性能是一个大问题。我正在检查内存消耗,发现一组图像,在硬盘驱动器中有 2~3mb,当加载到游戏时,它占用了 30mb。有没有办法在不影响 CPU 使用率的情况下减少内存消耗?
问问题
607 次
1 回答
0
你说的是一组图像文件。然而,这些图像文件最有可能被压缩,因此文件大小更小。要找到所有图像的未压缩大小,您应该计算每个图像的内存占用量(最有可能width * height * bytes per pixel
(RGB 为 3 个字节,RGBA 为 4 个字节)。这与您的 30 MB 内存占用量相比如何(例如,一个RGB 图像是 1680x1080 屏幕,您将需要约 5.3 MB 的内存用于屏幕)?
回答您的问题:我认为您无法轻松减少应用程序的内存占用(不牺牲 CPU)。显卡 (GPU) 能够处理压缩的纹理/图像(例如DXT ),而且看起来 PyGame 也可能是(在PyGame Surface 文档中搜索 'compressed' ),但我在 PyGame 中找不到任何可以让您选择是否需要压缩纹理或纹理实际驻留的位置(视频内存,操作内存,两者)。这可能取决于您运行的操作系统和硬件。
一种方法可能是降低文件的分辨率或仅加载该特定场景所需的文件。
对 PyGame 有更好了解的人可能会提供进一步的见解。
于 2014-10-28T19:44:42.277 回答