211得票6回答
数据驱动设计是什么?

我正在阅读这篇文章,作者谈到如何将数据导向设计与OOP相结合可以大力提升效果。然而,他没有展示任何代码样例。 我使用谷歌搜索也无法找到有关此方面的真实信息,更不用说代码样例了。是否有人熟悉这个术语并能提供示例?这可能是其他东西的另一个词吗?

29得票1回答
我的理解中,AoS和SoA的优缺点是什么?

我最近在阅读关于 AoS vs SoA结构设计和 数据导向设计的文章。很奇怪地是,很难找到关于这两个主题的信息,而且我所发现的似乎都假定了我具有比我实际掌握的处理器功能更深入的理解。尽管如此,特别是对于前一个主题,我所理解的内容引出了一些问题,我认为我应该能够理解答案。 首先,为了确保我的理...

26得票2回答
实践中的数据导向设计?

有一个问题关于数据导向设计,还有一个经常被提到的文章(我已经读过5到6遍了)。我理解这个的一般概念,特别是在处理例如3D模型时,您想将所有顶点放在一起,不要用法线污染面等。 但是,我很难想象数据导向设计如何适用于除了最简单的情况之外的任何内容(例如3D模型、粒子、BSP树等)。是否有任何很好...

20得票2回答
JavaScript中的内存布局 - 数据导向与面向对象设计

如果你在主机游戏开发中工作,尤其需要减少缓存未命中,那么就要特别关注对象的内存布局。为了在内存中将相关对象放在一起(尤其是在性能关键区域),数据导向设计通常比面向对象设计更受青睐。 最近我在做一些Javascript开发,我想知道Javascript社区的普遍共识是什么。 由于我的Java...

17得票7回答
理解缓存友好、数据导向的对象和句柄

using namespace std; 考虑传统面向对象编程对实体/对象管理的方法:struct Entity { bool alive{true}; } struct Manager { vector<unique_ptr<Entity>>...

17得票4回答
多数组数据索引的数据导向访问

我正在为一个游戏引擎开发实体组件系统。我的目标之一是采用数据导向的方法来进行最优数据处理。换句话说,我希望遵循“结构体数组优于数组结构体”的指导方针。然而,我的问题是我还没有找到一个简洁的方法来解决这个问题。 到目前为止,我的想法是系统中的每个组件都负责游戏逻辑的特定部分,比如重力组件负责根...

14得票3回答
无递归的面向数据的树遍历

我有一个树形结构,像这样:一个模型有一个根节点,每个节点都有任意数量的子节点和网格。 我的应用程序大部分时间花费在遍历这个树和执行计算,比如视图截锥体裁剪和矩阵乘法等。目前,它是朴素实现的,每个节点都具有子节点和网格的向量,并且树被递归遍历。这非常慢。 我一直在研究数据导向设计,并喜欢它非...

12得票4回答
哪种方式最适合缓存?

我正在努力掌握数据导向设计以及如何在编程时更好地考虑缓存。基本上有两种情况,我还不能确定哪一种更好,也不知道原因 - 是使用对象的向量好,还是使用几个包含对象原子数据的向量比较好? A) 对象向量示例struct A { GLsizei mIndices; GLuint mV...

11得票3回答
函数调用和条件语句哪个更快?

在回答这个问题之前,请考虑分支预测。 我有一些场景,可以通过使用函数指针来替换条件语句并调用一个函数。可以将其类比于基于组件的编程代替继承的情况。 class Shape { float Area() { if(typ...

11得票2回答
理解std::transform及如何优化它

我正在尝试通过一个简单、具体的问题来理解数据导向设计。如果我做了什么非常愚蠢的事情,向数据导向设计者提前道歉,但是我很难理解我的推理失败的原因和位置。 假设我有一个简单的操作,即 float_t result = int_t(lhs) / int_t(rhs)。如果我将所有变量保留在相应的容...