C语言的执行时间

时间:2012-04-03 14:56:19

标签: c

我使用以下代码计算搜索功能的执行时间(以毫秒为单位)。

sBegin = clock();
searching();
sEnd = clock();
searchingTime = ((float)(sEnd-sBegin)/CLOCKS_PER_SEC)*1000;

结果是例如952.000000。我想知道为什么小数点后的所有数字总是为零?我该如何解决?有没有更好的方法来计算C语言的执行时间?

2 个答案:

答案 0 :(得分:1)

你正在做整数除法,试试

    searchingTime = ((sEnd-sBegin)/(float)CLOCKS_PER_SEC)*1000;

还有其他地方你可以放置演员并得到同样的东西,这只是一种可能性

修改

在此处,查看问题herehere。我认为这些可能会回答你的问题(基本上它看起来不像clock()会削减它)。我上面的答案是错的。

答案 1 :(得分:0)

请参阅Kerrek SBcomment

这取决于clock的分辨率。如果它返回精度为1 ms的值,则无法测量小于1ms的差异。您的系统似乎就是这种情况。

没有更好的便携方式来衡量时间。也许您的平台提供了特定的功能,以便以更好的分辨率获得系统时间。