提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我正在编写一个类似立方体素的游戏,并希望获得更多性能。 目前我创建这样的立方体
for (size_t i = 0; i < 20000; i++)
{
objects* cube = new objects;
cube->position.x =
----------
cubes.push_back(cube);
}
然后我遍历所有对象以更改它们的位置和内容并使用
for (auto& cube : cubes)
{
//change cubes position stuff etc
}
问题是,一旦我生成 100,000 个立方体,我的游戏就会开始滞后。 过去我做过类似的事情,我使用 java 并且能够以 2,000,000 的速度生成并达到 5fps 左右,但我丢失了代码,但我知道我当前的代码可以优化。
所以我考虑了这么多,我想到了这个而不是使用对象
float world[maxworldlength][maxworldlength][cubesperchunk][cubesperchunk][cubesperchunkdeph][x][y][z];
在这里,我可以将我的世界中的所有对象放在一个列表中,并且可以轻松访问任何没有循环等的属性,并且由于数据全部放在一起,对于 cpu 来说可能更快。 但是我对此进行了更多考虑,并考虑了这将使用多少内存。 经过一些简单的数学运算 ((32 * 10) * (32 * 10) * (32 * 16) * (32 * 16) * (32 * 50) * (32 * 50)) / 1000000000。我发现数组会使用超过 68719476 GB 的内存。 所以我不得不放弃这个想法。
任何人都知道我如何存储大量性能影响较小的对象。 谢谢你的帮助/。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.