任何人都可以告诉我,如果我错过下面两行会发生什么?c程序计算执行时间错误?
time_spent = (double)(end - begin)/CLOCKS_PER_SEC;
我试图计算运行我的排序问题的时候,忘了强制转换为加倍。代码运行了将近90分钟,但输出时间为“270.000006”。任何人都可以请帮助我弄清楚这个270表示什么?
此外它有时会显示“-ve”值。任何解决这个问题的方法。
编辑 - 我排序10^9和10^10的数字,所以代码将运行几个小时。
任何人都可以告诉我,如果我错过下面两行会发生什么?c程序计算执行时间错误?
time_spent = (double)(end - begin)/CLOCKS_PER_SEC;
我试图计算运行我的排序问题的时候,忘了强制转换为加倍。代码运行了将近90分钟,但输出时间为“270.000006”。任何人都可以请帮助我弄清楚这个270表示什么?
此外它有时会显示“-ve”值。任何解决这个问题的方法。
编辑 - 我排序10^9和10^10的数字,所以代码将运行几个小时。
正确的用法是:
clock_t begin, end;
double time_spent;
begin = clock();
/* actual task that needs to be monitored */
end = clock();
time_spent = (double)(end - begin)/CLOCKS_PER_SEC; // in seconds
您在这里测量CPU时间,而不是经过的时间,其中包括I/O时间为好。 CLOCKS_PER_SEC是一个在其中声明的常量。计算需要在浮点运算中完成。 计算计时的另一种方法是使用时间命令。
你如何得到最终值和开始值以及它们是什么类型? – 2014-08-28 08:15:08
我已经使用了Debasish在下面提到的相同的代码。 – Anurag 2014-08-28 08:42:39