gpt4 book ai didi

c++ - 双重简单的 for 循环与一个复杂的循环

转载 作者:行者123 更新时间:2023-11-30 05:11:11 26 4
gpt4 key购买 nike

也许这是一个愚蠢的问题,但假设我有两个函数,void F1(int x) 和 void F2(int x),我想在 for 循环的每次迭代中执行它们。如果我做一个大的 for 循环,它会有多少不同(性能方面),如下所示:

`
for(int i = 0; i < 100 ; i++)
{
F1(i);
F2(i);
}
`

与做两个单独的循环相比,一个我调用 F1,一个我调用 F2:

`
for(int i = 0 ; i < 100 ; i++)
F1(i);
for(int i = 0 ; i < 100 ; i++)
F2(i);
`

在写这篇文章时,我突然想到第一种方法可能更快,因为只有大约 100 次增量和 100 次比较,而在第二种情况下,我们将分别获得 200 次。

假设我的循环只需要运行 200 次迭代。考虑到 2007 年及之后的 CPU,两个 for 循环方法在性能方面是否几乎相同:)?

最佳答案

这取决于 F1F2 的作用。

这根本无关紧要,否则您可能会因为一个接一个地调用这两个函数而体验到速度的急剧下降。

作为后一种情况的示例,考虑 F1F2 访问两个不同的数组。在每次运行 F1F2 时,它们都会读取足够的数据以导致整个缓存被覆盖。这可能会导致减速。

但最好不要对您的代码进行推测、测量和基准测试。如果两个版本的性能相当,请选择最具可读性的版本。

关于c++ - 双重简单的 for 循环与一个复杂的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45194696/

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