【发布时间】:2014-01-13 19:57:16
【问题描述】:
我有一个数组,我想在同一个方法中多次使用单个值。
int[] array = new array[] {1, 2, 3};
现在我问你如果我使用数组和索引来获取值是否是一个大的性能问题...
int x = array[1] * 2;
int y = array[1] * 3;
int z = array[1] * 4;
还是创建一个局部变量更好?
int value = array[1];
int x = value * 2;
int y = value * 3;
int z = value * 4;
我知道使用局部变量更容易阅读,但它只是让我感兴趣,如果它有任何性能差异。 ;-)
【问题讨论】:
-
我会选择第二种方法,不仅是为了提高性能,也是为了避免重复。
-
微优化是邪恶的
-
即使您确实想优化它,为什么不编写一个小程序来测试它经过多次迭代(就像 Konrad 在他的回答中所做的那样)?
-
@Steve 请记住,基准测试很难,对于微优化来说更是如此。 超级很容易得到非常误导性的结果,最终只表明基准代码的性能差异,而不是正在测试的代码。
标签: c# arrays performance