gpt4 book ai didi

c++ - 如何用 C++ 测量挂钟时间而不是 cpu 时间?

转载 作者:行者123 更新时间:2023-11-28 01:20:47 26 4
gpt4 key购买 nike

我想用 C++ 测量我的算法所用的挂钟时间。许多文章都指向这段代码。

clock_t begin_time, end_time;
begin_time = clock();
Algorithm();
end_time = clock();
cout << ((double)(end_time - begin_time)/CLOCKS_PER_SEC) << endl;

但这仅测量我的算法占用的 CPU 时间。其他一些文章指出了这段代码。

double getUnixTime(void)
{
struct timespec tv;

if(clock_gettime(CLOCK_REALTIME, &tv) != 0) return 0;

return (tv.tv_sec + (tv.tv_nsec / 1000000000.0));
}
double begin_time, end_time;
begin_time = getUnixTime();
Algorithm();
end_time = getUnixTime();
cout << (double) (end_time - begin_time) << endl;

我认为它会打印我的算法所用的挂钟时间。但令人惊讶的是,这段代码打印的时间比之前代码打印的 cpu 时间要低得多。所以,我很困惑。请提供打印挂钟时间的代码。

最佳答案

那些时间可能在噪音中消失了。要获得合理的时间测量,请尝试在循环中多次执行您的算法:

const int loops = 1000000;
double begin_time, end_time;
begin_time = getUnixTime();

for (int i = 0; i < loops; ++i)
Algorithm();

end_time = getUnixTime();
cout << (double) (end_time - begin_time) / loops << endl;

关于c++ - 如何用 C++ 测量挂钟时间而不是 cpu 时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56400092/

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