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

时间:2011-05-27 15:15:04

标签: c++ c gcc executable

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

现在我只有几kb的三维网格数据,但在这个数字增长之前,我想知道在可执行文件中嵌入多少数据是可行的?如果我在其中放入几千兆的纹理数据,它会没问题吗?滥用此功能有哪些性能损失?

1 个答案:

答案 0 :(得分:0)

此资源分配方法的缺点是,在整个应用程序期间,所有资源都将出现在虚拟内存中。

例如,如果游戏中有10个级别,使用更常见的基于文件的存储解决方案,则只会加载要播放的级别的数据。通过在运行时加载所有游戏数据,您分配的RAM超出了必要的数量。使用最少量RAM的解决方案只会在需要的时间内加载所需的资源。

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

此外,如果您的目标计算机是一个不执行多任务处理的简单游戏控制台,那么您通常可以以最适合您的方式使用可用资源。没有要求“玩得好”,因为通常一次只运行一个游戏。

如果你在现代系统上处理几兆字节,那么惩罚可以忽略不计,但是当你进入数千兆字节的数据时,性能会受到影响,那就是你会对系统的可用内存资源造成不必要的压力。

编辑:请务必查看评论中提出的要点