c# - 数组访问是否比模除法更快?

标签 c# arrays performance

我不知道 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];

数组查找实际上会为 bc 节省那么多时间吗?

编辑:我用几种方法描述了它。结果是数组查找快了将近四倍。

最佳答案

这不太可能重要。你应该选择最易读的。我可以告诉你

c = (b ? a+1 : a-1) >> 1;

毫无意义,因为您没有购买任何性能,但您的代码可读性较差。直接除以二即可。

也就是说,如果您真的很在意,只需在分析器中亲自尝试一下。

关于c# - 数组访问是否比模除法更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6344675/

相关文章:

c++ - 初始化 std::array 的 std::array

c# - 配置等待和性能

c# - 在 C# SDK 中使用存储连接字符串通过 URI 访问 blob

c# - 内联辅助方法如何以及为何在运行时评估类型?

c - C语言中如何获取内存地址的值

.net - 如何更新正在运行的 asp.net 应用程序?

javascript - 如何重构我的代码以减少嵌套循环的数量?

c# - Parallels.ForEach 与 Foreach 花费相同的时间

c# - 使用初始化 block 不好吗

javascript - 如何通过多个 $.ajax 调用实现异步计算可观察值?