gpt4 book ai didi

c - 在 C 中测量耗时?

转载 作者:行者123 更新时间:2023-12-04 00:00:05 26 4
gpt4 key购买 nike

所以,我想看看我的代码中的一个函数需要多长时间才能运行。 (实时)。原来,我有这个:

clock_t begin = clock();
my_function();
clock_t end = clock();
double time_spent = (double)(end - begin);

但显然,这种方法存在一些问题。

  1. 它只测量 CPU 处理我的应用程序所用的时间。
  2. 据我所知,它仅测量微秒级 - 这对我的情况来说不够精确。

那么,获取函数运行时间的正确方法是什么? CPU时间真的是正确的方法吗?我可以测量多精确?我在想纳秒级?

最佳答案

因此,您应该问问自己是否真的需要纳秒级。处理器以 GHz 级的时钟频率运行,这意味着一条指令需要以纳秒级的时间执行。这意味着纳秒精度的测量极其复杂(如果不是不可能的话)。

有新的timespec_get C11 附带的可以让您获得纳秒级分辨率的时间,但它肯定不是那么准确。

如果您的目标是测量函数的执行时间,那么最好的选择当然是在一个循环中调用您的函数,将其执行一千次,并以微秒级的精度进行测量,这肯定更接近纳秒级的精度比任何声称是纳秒的计时器。

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

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