gpt4 book ai didi

c++ - CPU 时间始终为零 :(

转载 作者:太空宇宙 更新时间:2023-11-04 01:12:03 24 4
gpt4 key购买 nike

我正在尝试使用以下代码测量 CPU 时间。

timespec time1, time2, temp_time;

clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time1);
int i;
int cpu_sum = 0;


for (i = 0; i < nelements; i++) {

cpu_sum += array[i];

}
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time2);
temp_time.tv_sec = time2.tv_sec - time1.tv_sec;
printf( sum: %d using CPU in %lf ms \n",cpu_sum, temp_time.tv_sec);

但我总是得到 0.000 毫秒的时间知道这里出了什么问题。

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

  1. 您通过将错误的参数类型传递给 printf(time_t,可能是 long,而不是double).

  2. tv_sec 只包含时间的整个秒部分。您还需要使用 tv_nsec 来获取纳秒部分。

尝试这样的事情:

temp_time.tv_sec = time2.tv_sec - time1.tv_sec;
temp_time.tv_nsec = time2.tv_nsec - time2.tv_nsec;
if (temp_time.tv_nsec < 0) {
temp_time.tv_nsec += 1000000000;
temp_time.tv_sec--;
}
printf("%lld.%.9ld\n", (long long)temp_time.tv_sec, (long)temp_time.tv_nsec);

关于c++ - CPU 时间始终为零 :(,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10393093/

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