独立变量和阵列性能

时间:2015-05-30 16:24:29

标签: c# arrays performance variables unity3d

我想知道什么是最优的,N个私有整数变量,或者包含N个整数值的单个数组。

1 个答案:

答案 0 :(得分:1)

使用数组时,这是一个加号间接。该数组将分配在内存的一个单独部分,因此当您第一次访问它时,您的代码首先获取其地址,然后它能够​​读出其内容。它还需要一些索引,但CPU完成的速度非常快。但是,.NET是一个安全的环境,它会检查您是否使用有效的数组索引。它增加了额外的时间。 当您使用单独的变量时,这些变量将包含在您的对象实例中,并且不需要间接变量。此外,不需要索引绑定检查。 而且,你不能很好地命名数组的第N个元素,但你可以为各个变量命名。所以你的代码是可读的。 正如其他人提到的,你不应该做这种优化,编译器/抖动会处理它。编译器知道几个常见的用例,并且具有优化策略。如果你开始做一些棘手的事情,编译器将无法识别你的意图,也无法为你做最优化。