Kyu*_*u96 4 c time benchmarking timing microbenchmark
所以,我想看看我的代码中的函数需要多长时间才能运行。(实时)。最初,我有这个:
clock_t begin = clock();
my_function();
clock_t end = clock();
double time_spent = (double)(end - begin);
Run Code Online (Sandbox Code Playgroud)
但显然,这种方法存在一些问题。
那么,获取函数运行时间的正确方法是什么?CPU 时间真的是正确的方法吗?我可以测量多精确?我在想纳秒级?
所以,你应该问自己是否真的需要纳秒级。处理器以 GHz 数量级的时钟速率运行,这意味着执行一条指令需要纳秒数量级。这意味着纳秒精度的测量极其复杂(如果不是不可能的话)。
C11 附带了新的timespec_get,可以为您提供纳秒分辨率的时间,但它肯定不是那么准确。
如果您的目标是测量函数的执行时间,那么最好的选择肯定是在循环中调用函数,执行一千次,并以微秒精度测量它,这肯定比任何计时器更接近纳秒精度声称是纳秒。
| 归档时间: |
|
| 查看次数: |
1683 次 |
| 最近记录: |