我使用以下代码计算搜索功能的执行时间(以毫秒为单位)。
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;
还有其他地方你可以放置演员并得到同样的东西,这只是一种可能性
修改强>
在此处,查看问题here和here。我认为这些可能会回答你的问题(基本上它看起来不像clock()
会削减它)。我上面的答案是错的。
答案 1 :(得分:0)
请参阅Kerrek SB的comment:
这取决于clock
的分辨率。如果它返回精度为1 ms的值,则无法测量小于1ms的差异。您的系统似乎就是这种情况。
没有更好的便携方式来衡量时间。也许您的平台提供了特定的功能,以便以更好的分辨率获得系统时间。