gpt4 book ai didi

c - 哪个操作需要更多的 CPU 时钟,取模还是比较?

转载 作者:行者123 更新时间:2023-12-02 05:30:27 25 4
gpt4 key购买 nike

哪个操作需要更多CPU时钟,modulocomparison ?

这段代码是否需要更多时间:

for(j = i; j <= 10; j++)
{
if(j == 10) printf("0");
else printf("%d", j);
}

或这个
for(j = i; j <= 10; j++)     
printf("%d", j % 10);

为什么?

最佳答案

如果以 CPU 周期衡量,取模运算可能需要更多周期;这可能取决于 CPU。但是,CPU 周期并不是衡量一次运行多个指令(流水线)、具有多层缓存等的现代处理器性能的好方法。在这种情况下,进行额外的测试将意味着额外的分支,这在时序方面可能更重要(即影响指令流水线)。确定知道的唯一方法是对其进行优化编译,并对其进行计时。

我知道你的例子只是一个例子,但这也说明了过早的优化。对 printf 的调用将比模或比较花费更多数量级的时间。如果您想优化您的示例,您可以编写如下内容:

printf ("1234567890");

关于c - 哪个操作需要更多的 CPU 时钟,取模还是比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21530131/

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