QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1476|回复: 6

请教个有关计算程序运行时间的问题

[复制链接]
发表于 2005-9-14 11:23:34 | 显示全部楼层 |阅读模式
gettimeofday(&tpstart,NULL);
usleep(10000);
gettimeofday(&tpend,NULL);
  timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+(tpend.tv_usec-tpstart.tv_usec);

这样一段程序计算出timeuse是否是10ms? 我打印出来timeuse的值是20ms左右,请问这10ms的误差哪里来的?
发表于 2005-9-14 12:21:58 | 显示全部楼层
我的机器结果是11ms,gettimeofday执行要时间,而且在多任务系统里usleep是不可能做得太精确。
回复

使用道具 举报

 楼主| 发表于 2005-9-14 12:40:50 | 显示全部楼层
我用//usleep关掉它,程序打印出的timeuse=0或1,看来usleep看来真是不准。再求教下,如果我想纯粹产生一个精确的定时能有什么方法?(我知道setitimer可以,不过好像用起来很麻烦,和信号相关的一些函数一起使用)
回复

使用道具 举报

发表于 2005-9-14 13:55:40 | 显示全部楼层
要精确到什么程度?
回复

使用道具 举报

 楼主| 发表于 2005-9-14 14:22:35 | 显示全部楼层
最好是误差不要超过1ms,控制在us数量级
回复

使用道具 举报

发表于 2005-9-14 17:34:10 | 显示全部楼层
还是用定时器吧
回复

使用道具 举报

 楼主| 发表于 2005-9-14 18:31:24 | 显示全部楼层
[quote:a780c83e01="mozilla"]还是用定时器吧[/quote]

没办法了,板斧都这么说了,只有用定时器了,呵呵
无论如何还是多谢板斧,这两天给我解决了不少问题~~!
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-8 13:47 , Processed in 0.049614 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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