提高+ =运营商绩效

时间:2016-01-22 11:20:32

标签: c++ c++11

我正在写一个必须非常快的应用程序。我使用Qt 5.5和Qt Creator,这是Qt的64位MSVC2013编译版本。

我使用非常困难的CS来分析我的应用程序,我发现占用最独特时间的函数是一个操作符+ =重载(这个被调用,正如你猜的那样,很多次)。

这是一段代码。

struct Coordinate
{
    float                   x;
    float                   y;

    Coordinate operator+=(const Coordinate &coord)
    {
        this->x += coord.x;
        this->y += coord.y;
        return (*this);
    }
};

我想知道是否有办法提高函数的性能,就像这个一样简单。

2 个答案:

答案 0 :(得分:18)

operator+=并没有像你那样明确定义。相反,它should be

Coordinate& operator+=(const Coordinate &coord);

请注意参考的返回值。

这也有不创建另一个副本的好处。

答案 1 :(得分:3)

检查您是否正在分析版本配置并启用编译器优化。任何体面的编译器都应该inlined这样的调用。

相关问题