我尝试使用 zlib 打包和压缩游戏客户端资源数据。如果我压缩数据,它会随着文件大小的减小而减少磁盘 I/O,但在解压缩时会增加 CPU 使用率。
问题1
如果用于渲染的资源被压缩,处理(渲染和解压缩)会使用 CPU,所以我认为它似乎很慢,对吗?
如果没有压缩,则磁盘 I/O 没有改变,并且不会出现额外的 CPU 使用率。如果您只读取文件的一部分,可以使用 CreateFileMapping()、MapViewOfFile() 函数减少磁盘 I/O。
问题2
在资源的情况下,例如未压缩的图像(例如tga,而不是png),当我们必须读取整个文件(例如图像文件)时,我们无法利用CreateFileMapping(),MapViewOfFile(),所以我认为压缩资源更好,你怎么看?
问题3
打包时对资源数据进行压缩是怎么想的?