变量会影响性能吗?

时间:2016-06-09 04:44:59

标签: c++ performance qt variables

我在QT 5.6中使用c ++。我有两种样式的简单控制台应用程序如下:

//First style

qstring x = “Hi!”;

void func()
{
        QTextStream(stdout) << x;
}

int main()
{
        while (true)
        {
                func_one();
        }
}

//Second style

void func()
{
        QTextStream(stdout) << “Hi!”;
}

int main()
{
        while (true)
        {
                func();
        }
}

哪个会更多地压缩cpu并因此性能较差可能没有太大的区别但是当我们将其应用于大规模时,例如服务器,每2秒进行一次连接就会产生类似于循环的情况上面和多个变量(但不是相同的变量和数据)少一点资源使用可以在资源使用较少的情况下提高性能。所以使用变量会给出任何性能改进,但是我将在我的函数中只使用一次该变量,虽然函数将被重复调用,或者使用变量会使程序变慢,因为它必须重复检查ram中“x的值”的位置“存储然后检索数据?

编辑1:

我不会在我的代码中再次使用该变量,我们可以认为没有编译器优化。 @DrDonut您给出的链接中的答案也没有回答$array === (array) $arrayis_array($array)更快,即它是微优化还是我要问的是第二种风格的微优化还是做到了损害表现。

1 个答案:

答案 0 :(得分:5)

您的示例很糟糕,因为可能的编译器优化,并且因为不清楚您是否会在不同的地方使用此变量,或者它只是一个将被抛出的测试代码。

但通常你会以错误的方式进行优化。优化单变量或单一功能是没有意义的。您不应该猜测您的程序将花费时间,您应该首先以它的工作方式编写程序并且看起来没问题。

程序运行后,如果发现其性能不好,则应搜索瓶颈 - 程序花费大量时间的地方。它们可以在分析器或调试器的帮助下找到,而不是通过猜测。

当您找到它们时,您需要优化这些关键位置。

了解premature optimization