gpt4 book ai didi

c++ - 如果其中没有任何内容,循环会更快吗?

转载 作者:行者123 更新时间:2023-12-02 09:49:46 24 4
gpt4 key购买 nike

这可能是一个愚蠢的问题,并且如果函数中没有任何内容,那么显然任何事情都会更快,因为它不需要处理任何事情。但是,我搞砸了SFML,因此决定尝试使用for循环滞后我的程序(因为每个游戏循环都是1帧)。

我制作了一个循环,每1帧计数为5000万,说实话,它仍然以10 FPS的速度运行。但是,第二秒钟我放置了一个std::cout << index << std::endl;,该程序无法在上完成一帧,并且每10秒钟会计数1000。

里面没有东西的循环真的会使它快得多吗?

最佳答案

如果您的循环中没有任何内容,而仅计数为:

for (int i = 0; i < 50; ++i) {}

然后,任何体面的优化器都会简单地删除整个循环,因此甚至不会执行计数。原因是没有副作用,因此删除循环可得到等效的程序。

即使稍后要打印 i计数器变量,大多数优化器仍然可以删除循环,因为他们知道 i在循环之后就是 50

因此,可以优化出的“空”循环无限快。

关于c++ - 如果其中没有任何内容,循环会更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61198592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com