LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3745|回复: 5

如何计算程序的运行时间呢?

[复制链接]
发表于 2009-10-29 18:54:50 | 显示全部楼层 |阅读模式
我现在的方法是在程序的最后面加上这么一句:

printf("%f\n",((double)clock())/((double)/CLOCK_PER_SEC));

我发现这么写只能精确到小数点后面2位,

如何能想time命令那样输出一个小数点后面3位的结果呢? :yun:
发表于 2009-10-30 13:27:00 | 显示全部楼层
可能不行,clock的精度达不到
回复 支持 反对

使用道具 举报

发表于 2009-10-30 13:38:38 | 显示全部楼层
需要用到某些精确度更高的计时方式,比如说TSC
回复 支持 反对

使用道具 举报

发表于 2009-10-30 13:59:38 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-30 18:19:55 | 显示全部楼层
谢谢楼上的了,哈哈。
回复 支持 反对

使用道具 举报

发表于 2009-11-6 17:03:11 | 显示全部楼层
Post by fender010;2040912
我现在的方法是在程序的最后面加上这么一句:

printf("%f\n",((double)clock())/((double)/CLOCK_PER_SEC));

我发现这么写只能精确到小数点后面2位,

如何能想time命令那样输出一个小数点后面3位的结果呢? :yun:

可以用gettimeofday,struct timeval结构支持微妙级的计时,linux里好像好有个能精确到ns函数,网上搜下就有了。
但是具体能精确到什么程度还是取决于你设备上的硬件,因为这些函数都是通过设备上的定时器来实现的,你的定时器能工作在什么样的精度上决定了你最终能获得的时间精度!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表