c# - 对象数组与对象属性数组——哪个更有效?

标签 c# arrays class object

哪个更快并且消耗更少的内存 - 具有一组属性的对象数组或对象的所有属性作为数组?

我正在制作一个 2d 瓷砖游戏,世界由瓷砖组成,所以我为每个瓷砖创建了一个单独的 Tile 类实例,有人说如果我使用数组可能会更快瓷砖的属性。我想亲眼看看其中的区别,但此时游戏太复杂,无法重写代码。

更新:我抽出一些时间来测试这两个选项,内存和 cpu 差异很小,对象数组胜出,因为它更容易使用(代码可读性 + 调试简单性)。

最佳答案

这可能取决于您的数组创建和访问模式;但是,根据经验,我不认为这两种方法会有显着的性能差异。如果您真的认为这可能是一个性能问题,唯一可以确定的方法是同时实现两者、分析程序并比较结果。

拥有一个 Tile 数组可能会更简单、直接的代码,所以就这样吧。如果您有实际的性能问题,请分析以找到代码的昂贵部分。

关于c# - 对象数组与对象属性数组——哪个更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11530261/

相关文章:

c++ - c++项目中函数的多重定义

c# - 在c#中读取原始图像文件

c# - 滑动效果不流畅

c# - 正则表达式验证器: Should not allow single zero

arrays - malloc 接触未分配的内存

c++ - 如何创建可以影响通过构造函数传递的对象的类变量?

c# - 有没有办法在 Noda Time 中表示部分日期?

python - 使用元组作为函数的输入

c - 如何使用 char** ? (指向字符数组的指针)

c++ - 头文件中的空类声明?