【发布时间】:2018-08-09 22:51:37
【问题描述】:
好的,我正在开发一个游戏项目。刚刚完成重建我前段时间设计的游戏引擎。我正在考虑制作一种专有文件类型来存储数据,而不是使用像 sqlite 这样的数据库。
着眼于在不深入研究的情况下,尽可能高效、快速地在游戏中进行这项工作。然后随着时间的推移不断改进。
我的问题是:从文件中加载数据并将其存储在数据管理器类中以供重用是否更有效?还是从文件中不断拉取整体效率更高?
假设文件的数据遵循某种形式的一致结构。我们正在查看最大的“表格”,大约有 30 列,大约有 1000 行数据。
【问题讨论】:
-
视情况而定,如果您可以将其全部保存在 RAM 中并有效地搜索,最好加载一次并保留在那里。如果太多,你应该使用磁盘。丢弃一段时间未使用的数据的混合解决方案可能是保留一些内存的最佳方式。
-
内存中的缓存总是会更快,但是...您有可用的内存来保存它吗?是否需要缓存和持有?如果您很少访问并且有足够的其他东西在快速或缓慢地进行数据管理器可能完全无关紧要。从最容易写的开始,看看有没有影响。
-
30 列 x 1000 行很小。
-
你可以让操作系统内存管理器使用内存映射文件来处理这个问题。
-
这里没有足够的信息可以为您提供任何类型的明确答案。对您的代码进行基准测试,并根据您的具体情况找出答案。
标签: c++ performance storage