我不知道 int 数组查找有什么开销。哪个性能更好(在 C# 中):
a = aLookup[i];
b = (a % 6) == 5;
c = (b ? a+1 : a-1) >> 1; // (a + 1) / 2 or (a - 1) / 2
或者
a = aLookup[i];
b = bLookup[i];
c = cLookup[i];
数组查找实际上会为 b
或 c
节省那么多时间吗?
编辑:我用几种方法描述了它。结果是数组查找快了将近四倍。
最佳答案
这不太可能重要。你应该选择最易读的。我可以告诉你
c = (b ? a+1 : a-1) >> 1;
毫无意义,因为您没有购买任何性能,但您的代码可读性较差。直接除以二即可。
也就是说,如果您真的很在意,只需在分析器中亲自尝试一下。
关于c# - 数组访问是否比模除法更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6344675/