繁体   English   中英

对象的快速替代

Fast alternative to objects

提示:本站收集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 的内存。 所以我不得不放弃这个想法。

任何人都知道我如何存储大量性能影响较小的对象。 谢谢你的帮助/。

问题暂未有回复.您可以查看右边的相关问题.
1 以下代码的快速替代方法

我必须计算一个矩阵我编写了以下代码 一切正常。 但是我的unq_x有10000个数字,这增加了代码运行时间。我可以使用其他替代方法代替for循环来固定代码 ...

2016-01-12 15:24:18 3 73   r
2 sscanf 的快速替代方案

我正在为 C 的嵌入式系统上的文本文件编写解析器。 我需要每秒使用 sscanf function 数百次,这会造成性能问题。 因此,我正在尝试寻找 sscanf 的快速替代方案。 我需要解析的文本文件包含“parameter=%d,%d,%d,%d”形式的参数。 参数名称长度不同,但参数始终由 4 ...

3 drawInRect的快速替代方案

以高帧速率渲染图像并将图像缩放到曲面的最快方法是什么? 我在〜30FPS使用drawRect绘制(使用缩放)NSBitmapImageRep,但它使用了大量的CPU。 用于在NSFitmapImageRep中设置30FPS像素的示例代码: 平局发生在30FPS: NS ...

4 Flash Builder的快速替代品

我在Flex中有一个大型应用程序。 我使用Flash Builder进行开发。 在我尝试编译项目之前,Flash Builder效果很好。 检查应用程序界面的细微更改需要太多时间。 有没有比Flash Builder更快的替代方法? InelliJ Idea是否可以更快地编译大 ...

5 快速替代`appendChild`

问题 当元素较大时, appendChild是否有快速的替代方法? const output = parent.appendChild(child); 这个单一的函数调用会阻塞我的应用程序的主线程,从而使其运行非常缓慢。 背景 在Atom的minimap-lens包中,我需要将一个元素附加到e ...

6 在 R 中拆分的快速替代方案

我正在使用split()对数据帧进行分区,以便使用parLapply()并行调用每个分区上的函数。 数据框有 130 万行和 20 列。 我按两列拆分/分区,都是字符类型。 看起来有 ~47K 唯一 ID 和 ~12K 唯一代码,但并非每个 ID 和代码配对都匹配。 结果分区数约为 250K。 这是 ...

7 快速替代grep -f

file.contain.query.txt file.to.search.in.txt 因为ENST003在第二个文件中没有条目且ENST004在第一个文件中没有条目,所以预期的输出是: 要在特定文件中grep多查询,我们通常执行以下操作: 因为我在file.t ...

2012-07-15 06:48:00 8 3378   perl/ awk
8 CreateProcess的快速替代品

我正在寻找Delphi中CreateProcess的快速替代方法来在exe中执行某些计算,包括XML中的几个返回值。 目前,我正在使用某些参数调用C#-exe。 其中一个电话约需要。 0.5秒-这是方式昂贵,因为此exe需要调用几百次(unfortunatley反复调用,即多线程不会加快工 ...

9 golang 快速替代 memcpy

我在 C 中有这个例子 我正在迁移到 golang,我不想使用 C.memcpy,我正在寻找一种快速的替代方案。 这是我的代码 我可以在不使用 C.memcpy 的情况下用一条指令转换 uint32 数组中的字节数组吗? 我尝试使用副本但出现错误。 我知道我可以使用这个结构 我想了解是否 ...

2021-11-02 20:51:52 1 22   go
10 内置sort / 4的快速替代方法

我正在寻找sort/4的替代方法。 我目前无法使用内置版本。 如果可用,我需要的语法将类似于以下sort(1, @&gt;=, List, Sorted) 。 列表中的元素看起来像这样([Value:x:y,z:a]:[], ...) 。 结果必须根据Value参数按降序排序。 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM