gpt4 book ai didi

c++ - 随着实体数量的增加,物理代码变得越来越慢

转载 作者:太空狗 更新时间:2023-10-29 21:10:36 26 4
gpt4 key购买 nike

我在一次在线面试评估中遇到了这个问题。

您注意到随着实体数量的增加,您的物理代码变得越来越慢。以下哪项可以提供帮助?

typedef struct Entity_t{

double pos_x, pos_y;
double vel_x, vel_y;
int health, action, mind;
int level;
void *equipment, *abilities, *effects,

}Entity;
  • A.将物理数据移动到数组结构以增加缓存一致性。
  • B.通过将设备、能力和级别移动到实体中来减少指针间接。
  • C.重新排列数据,使 pos_x 、 pos_y 、 vel_x 和 bel_y 最后以提高访问速度。
  • D.将实体移动到链接列表中,以便您可以直接从当前访问下一个项目。

我的猜测是 D,但我觉得这不对,因为我认为在这种情况下更快地访问下一个项目没有帮助。物理代码变慢的原因应该与缓存有关。 A与缓存有关,但我不知道“将物理数据移动到结构”是否可以增加缓存一致性。我只知道缓存一致性的硬件解决方案。 B & C 似乎都与问题无关。

最佳答案

预期答案是 B。增加动态分配的指针数量会增加缓存未命中,但更重要的是,连续的动态 [解除] 分配会显着降低程序速度。但这个答案是主观的;如果没有完整的最小代码示例,则无法提供准确的解决方案,也可能会考虑其他选项。

关于c++ - 随着实体数量的增加,物理代码变得越来越慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53441460/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com