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

问题描述

| 最近,我在这里找到了如何将资源文件嵌入可执行文件中。还有xxd方法。有了这个新发现的玩具,我最初使用该玩具将GLSL着色器的文本嵌入到我的游戏中,现在我想嵌入该游戏所需的每个资源文件。 目前,我只有几kb的3-D网格数据,但是在这个数字增长之前,我想知道在可执行文件中嵌入多少数据是可行的?如果我在其中放入几GB的纹理数据,那可以吗?滥用此功能有哪些性能损失?     

解决方法

        这种资源分配方法的缺点是在应用程序的整个过程中,所有资源都将存在于虚拟内存中。 例如,如果您的游戏中有10个关卡,则使用更常见的基于文件的存储解决方案时,您只会加载要播放的关卡的数据。通过在运行时加载所有游戏数据,您分配的RAM超出了必要。使用最少量的RAM的解决方案只会在需要它们的持续时间内加载所需的资源。 但是,如果要对资源使用基于文件的存储解决方案并在执行开始时全部加载它们,则RAM的使用将与静态分配的资源方法相同。 另外,如果目标计算机是不执行多任务处理的简单游戏机,则通常可以以最适合自己的方式自由使用可用资源。不需要“玩得好”,因为通常一次只能运行一个游戏。 如果您在现代系统上处理几兆字节,则损失可以忽略不计,但是当您获取数千兆字节的数据时,性能损失将是对系统的可用内存资源造成不必要的负担。 编辑:确保看到评论中提出的观点     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...