gpt4 book ai didi

c++ - 为什么在包含 iostream 时此代码更快?

转载 作者:可可西里 更新时间:2023-11-01 18:38:53 25 4
gpt4 key购买 nike

<分区>

更快的代码:

#include <stdio.h>
#include <iostream>

long fib(int num)
{
if (num <= 1)
return 1;
else
return fib(num-1) + fib(num-2);
}
int main()
{
long res = fib(45);
printf("%li\n", res);
return 0;
}

较慢的代码:

#include <stdio.h>

long fib(int num)
{
if (num <= 1)
return 1;
else
return fib(num-1) + fib(num-2);
}
int main()
{
long res = fib(45);
printf("%li\n", res);
return 0;
}

两者唯一的区别是第二行#include <iostream> .

两者都是用 clang++ 8.0.0-3 编译的,带有 -O2 标志。

clang++-8 -O2 fib.cpp && time ./a.out    # 3.59s
clang++-8 -O2 fib_io.cpp && time ./a.out # 3.15s

编辑:
似乎行为在重新启动后发生了变化,这次 iostream 版本变慢了,这更有意义。
我倾向于说这只是一个侥幸,因为我不能再重现了。

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