[英]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) $array
比is_array($array)
快,即它是微优化,我也想问是第二种样式是micro -优化或是否损害性能。
您的示例很糟糕,因为可能会进行编译器优化,并且还不清楚您是否会在不同的地方使用此变量,或者只是将抛出的测试代码。
但是通常您以错误的方式进行优化。 优化单个变量或单个函数没有意义。 您不应该猜测程序将在哪里花费时间,而应该首先以其工作方式编写程序并看上去不错。
程序运行后,如果您发现它的性能不好,则应搜索瓶颈-程序花费大量时间的地方。 可以在分析器的帮助下或在调试器中找到它们,而不用猜测。
找到它们后,您需要优化这些关键位置。
了解过早的优化
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.