繁体   English   中英

变量会影响性能吗?

[英]Do variables affect performance?

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

//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)快,即它是微优化,我也想问是第二种样式是micro -优化或是否损害性能。

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

但是通常您以错误的方式进行优化。 优化单个变量或单个函数没有意义。 您不应该猜测程序将在哪里花费时间,而应该首先以其工作方式编写程序并看上去不错。

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

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

了解过早的优化

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM