有没有更有效的方法来计算减法表达式的绝对值
本文关键字:表达式 绝对值 计算 有效 方法 有没有 | 更新日期: 2023-09-27 18:33:34
这个问题几乎说明了一切。目前,我正在使用Math.Abs(a - b)
来计算减法表达式的绝对值,例如5 - 10
和10 - 5
都返回5
。
有没有更有效的方法,或者这是最有效的方法?
在你确切知道问题所在之前,请不要对代码进行微观优化。
您可以使用 MethodImplAttribute 实现一个自己的函数并使其成为内联函数,以降低函数调用的成本。
如果您使用的是 Int32 值,并且您的输入恰好不是边界值,则可以使用它
Abs(x) = (x ^ (x >> 31)) - (x >> 31)
但是我建议你忘记这一切,分析你的应用程序,你会发现真正的问题不在其他地方调用Math.Abs
,你应该总是先让你的代码可读,然后在你证明它们确实是性能问题之后调整性能问题!
程序员浪费大量时间思考或担心 关于他们程序的非关键部分的速度,以及这些 效率的尝试实际上会产生强烈的负面影响,当 考虑调试和维护。我们应该忘记小 效率,比如说大约 97% 的时间:过早优化是 万恶之源。然而,我们不应该在这方面放过我们的机会。 临界 3%。
(DonaldKnuth的论文"StructuredProgrammingWithGoToStatement"(
请阅读此内容