gpt4 book ai didi

c++ - 在 C++ 中测量时间

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:27:43 25 4
gpt4 key购买 nike

这是我的 C++ 代码。

double start_time = time(NULL);
double start_clock = clock();

#pragma omp parallel for private(i)
for(i=0;i<max_i;i++)
PROCESS(i);

double end_time = time(NULL);
double end_clock = clock();

printf("%lf second(s)\n", end_time-start_time);
printf("%lf second(s)\n", (end_clock-start_clock)/CLOCKS_PER_SEC);

这是输出。

took 2.000000 second(s)
took 11.410000 second(s)

有谁知道为什么这些不一致?还有其他测量方法吗?顺便说一句,根据我在这里看到的时间,2 秒似乎更合理。

最佳答案

clock() 函数返回您的进程自启动以来使用的 CPU 时间,而不是根据实时时钟的绝对时间。 p>

在另一条评论中,您说 CODE_BLOCK 是一个并行循环 - 这意味着在您的情况下,它在 2 秒的实际(“挂钟”)时间中使用了 11.41 秒的 CPU 时间.显然,您正在并行使用大约 6 个 CPU 的能力。

关于c++ - 在 C++ 中测量时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12223842/

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