gpt4 book ai didi

c - 为什么我的c程序用的时间比自己计算的时间还多?

转载 作者:IT王子 更新时间:2023-10-29 00:49:49 26 4
gpt4 key购买 nike

我在 linux 上使用 time 命令来测量我的程序花费了多长时间,并且在我的代码中我放置了计时器来计算时间

time took calculated by program: 71.320 sec

real 1m27.268s
user 1m7.607s
sys 0m3.785s

我不知道为什么我的程序实际占用的时间比计算的多,如何找到原因并解决?

============================================= =======

这是我在代码中计算时间的方法;

clock_t cl;
cl = clock();

do_some_work();

cl = clock() - cl;
float seconds = 1.0 * cl / CLOCKS_PER_SEC;
printf("time took: %.3f sec\n", seconds);

最佳答案

启动进程、启动运行时、关闭程序总是有开销,时间本身也可能有开销。

最重要的是,在多进程操作系统中,您的进程可以“切换出去”,这意味着其他进程在您的进程暂停时运行。这也可能会打乱时间。

让我解释一下时间的输出:

  • real 表示实际时钟时间,包括所有开销。
  • user 是在实际程序中花费的时间。
  • sys 是内核系统花费的时间(例如我之前谈到的切换)

请注意,user + sys 非常接近您的时间:1m7.607s + 0m3.785s == 71.392s

最后,你是怎么计算时间的?如果没有这些信息,就很难准确判断问题是什么(如果有的话)。

关于c - 为什么我的c程序用的时间比自己计算的时间还多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9642286/

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