我在 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) $array
比 is_array($array)
快,即它是微优化,我还想问第二种风格是微优化还是会损害性能。
最佳答案
您的示例很糟糕,因为可能需要进行编译器优化,并且不清楚您会在不同的地方使用这个变量,还是它只是一个将被丢弃的测试代码。
但通常您的优化方式是错误的。优化单个变量或单个函数是没有意义的。你不应该猜测你的程序将把时间花在哪里,你应该首先按照它工作的方式编写你的程序并且看起来不错。
程序运行后,如果你发现它的性能不好,你应该寻找瓶颈——程序花费大量时间的地方。它们可以在分析器或调试器的帮助下找到,而不是靠猜测。
当你找到它们时,你需要优化这些关键的地方。
关于c++ - 变量会影响性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37716998/