将资源文件嵌入可执行文件的性能

Performance of embedding resource files into executable

本文关键字:可执行文件 性能 资源 源文件      更新时间:2023-10-16

最近我在这里发现了如何将资源文件嵌入到可执行文件中。还有xxd方法。考虑到这个新发现的玩具,我最初用来将GLSL着色器的文本嵌入到我的游戏中,现在我想嵌入游戏所需的每个资源文件。

目前我只有几kb的三维网格数据,但在这个数字增长之前,我想知道在可执行文件中嵌入多少数据是可行的?如果我在里面放几个千兆字节的纹理数据,可以吗?滥用此功能的性能惩罚是什么?

这种资源分配方法的缺点是,在应用程序的整个过程中,所有资源都将存在于虚拟内存中。

例如,如果你的游戏中有10个级别,使用更常见的基于文件的存储解决方案,你只会加载你要玩的任何级别的数据。通过在运行时加载所有游戏数据,您可以分配比所需更多的RAM。使用最少量RAM的解决方案只会在需要的时间内加载所需的资源。

但是,如果要为资源使用基于文件的存储解决方案,并在执行开始时加载所有资源,则RAM的使用将与静态分配的资源方法相同。

此外,如果你的目标机器是一台不进行多任务处理的简单游戏机,那么你通常可以自由使用可用资源,以最适合你的方式使用。没有"玩得好"的要求,因为通常一次只有一个游戏在运行。

如果你在现代系统上处理的是几兆字节的数据,那么损失是可以忽略不计的,但当你处理多个千兆字节的数据时,性能损失是你会对系统的可用内存资源造成不必要的压力。

编辑:一定要看到评论中提出的要点