gpt4 book ai didi

c++ - 相同代码执行两次 : performance difference

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:06:39 26 4
gpt4 key购买 nike

有谁知道为什么同一段代码执行两次,第一次执行的速度似乎比第二次快?

我尝试了大约 20 次下面的代码,每次第一次执行都比第二次快。

#include <iostream>
#include <time.h>

void add(int* var) {(*var)++;}

int main()
{
int var = 0;
clock_t tStart;

tStart = clock();
for(int i=450000000;i--;) {add(&var);}
printf("%.2fs\n", (double)(clock() - tStart)/CLOCKS_PER_SEC);

tStart = clock();
for(int i=450000000;i--;) {add(&var);}
printf("%.2fs\n", (double)(clock() - tStart)/CLOCKS_PER_SEC);

return 0;
}

确实很小,但为什么还是有区别呢?

1.28s
1.36s
Program ended with exit code: 0

我会做错什么吗?也许这与我如何安排事情的时间有关,而不是与执行速度有关?

谢谢

最佳答案

执行速度略有不同的原因可能有一百万个。它可以在系统进行某些维护的同时运行,系统可以将同一线程外包给其他进程等。

此外,使用 clock() 来衡量性能并不准确,因为它并不是真正衡量时间,而是衡量 CPU 周期。我建议使用 std::chrono::high_resolution_clock。用法示例 can be found here .

关于c++ - 相同代码执行两次 : performance difference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49011783/

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