【问题标题】:clock() - execution time for c functionclock() - c 函数的执行时间
【发布时间】:2013-03-27 05:16:06
【问题描述】:

我正在尝试测量 C 中代码块的执行时间。我的代码中有这样的内容:

clock_t begin, end;
double time_spent;
begin = clock();
ATL_dsymv(122,n,alfa,A,n,X,1,beta,Y,1);
end = clock();
time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
printf ("(%f seconds)",time_spent);

但它总是返回:(0.000000 秒)。我在 for 等更简单的代码块上尝试了相同的操作,但结果相同。我究竟做错了什么?非常感谢。

【问题讨论】:

  • 使用相同的代码,但将定时部分执行数百万次。
  • 代码运行大约需要多长时间?大概的期望值是多少?
  • 问题是不管我有什么代码块它只返回(0.000000秒)
  • 如果省略除法怎么办? end - begin 已经是 0 了吗?
  • 嗯..是的..但它没有意义

标签: c performance time clock


【解决方案1】:

clock 通常具有非常差的分辨率,大约为 10 毫秒。这很可能是您的问题。如果您使用的是 POSIX 系统,请使用 clock_gettimeCLOCK_PROCESS_CPUTIME_ID 时钟以获得高分辨率结果。其他类型的系统可能具有特定于系统的方法来实现相同的目标。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多