如何提高电力工程? 是否值得使用pow(x,2)?

在c ++中进行乘法比提高功率2效率更高?

我正在尝试做最后的详细优化。 编译器会将x * x与pow(x,2)相同吗? 如果我没有记错,乘法因为某种原因更好,但是在c ++ 11中可能并不重要。

谢谢


如果你将乘法与pow()标准库函数进行比较,那么是的,乘法肯定会更快。


总的来说,除非您有证据表明存在热点(即,除非您已在实际情况下对您的代码进行了剖析并确定了特定的代码块,否则您不应该担心这种微型优化。您的聪明窍门实际上可能会导致您的假设不再成立的新处理器的性能回归。

算法变化是您最能为您的计算降价获得最大收益的地方。 专注于此。

修正乘法运算并做一些聪明的琐事......呃没有那么厉害*因为目前这一代优化编译器在他们的工作中真的非常出色 。 这并不是说他们不能被击败。 他们可以,但不容易,也可能只有像Agner Fog这样的少数人。

* 当然也有例外。


谈到性能时,请始终进行测量以备份您的假设。 除非你有一个证明理论正确的基准,否则不要相信理论。

另外请记住, x ^ 2 2在C ++中不会产生2的平方:

#include <iostream>

int main()
{
    int x = 4;
    std::cout << (x ^ 2); // Prints 6
}

现场示例。

链接地址: http://www.djcxy.com/p/15023.html

上一篇: How raise to power works? Is it worth to use pow(x, 2)?

下一篇: Why is x**3 slower than x*x*x?