搜索
bottom↓
回复: 15

请问怎么计算C语言中的运行时间?

[复制链接]

出0入0汤圆

发表于 2007-11-13 10:16:11 | 显示全部楼层 |阅读模式
如果用汇编,知道某条指令需要几个机器周期,然后很好计算一个指令的运行时间。
但如果用C的话,怎么计算?
例如
void delay(uint us)
{
while(us--){}
}
这个延时怎么计算?

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2007-11-13 11:40:12 | 显示全部楼层
C文件编译会产生lss汇编文件,对着查找汇编代码,自己算
我就是这么干的

出0入0汤圆

发表于 2007-11-13 11:41:46 | 显示全部楼层
用AVUSTUDIO看

出0入0汤圆

发表于 2007-11-13 15:53:24 | 显示全部楼层
不愿看代码,也可以看示波器

出0入0汤圆

 楼主| 发表于 2007-11-13 17:10:32 | 显示全部楼层
有这么灵敏的示波器吗?可以看到微秒?

出0入0汤圆

发表于 2007-11-26 15:07:36 | 显示全部楼层
各位好,正如一樓大俠所說,這個應該與編譯器有關,就KEIL 來說,一個增量應該是8微杪

出0入0汤圆

发表于 2007-11-29 00:27:12 | 显示全部楼层
启动软件仿真然后把汇编代码展开就行了,就是上方那个有个小眼镜看书的图标.不启动软件仿真的话那个图标是看不到的.自已对着汇编一条一条相加算时间.另外还有个懒办法,就是仿真时看左边框里那个"sys"中的"states"值,那个值就是周期数.它的下方是秒数.你需要哪个用哪个.

出0入54汤圆

发表于 2007-11-29 09:07:27 | 显示全部楼层
可以看对应的汇编代码,或是用示波器
二种方法我都做过,哈哈
用示波器就是执行N条相同代码后取反某个端口,N可以取大一点以求平均值

出0入0汤圆

发表于 2007-12-12 14:04:36 | 显示全部楼层
有这么灵敏的示波器吗?可以看到微秒?

我经常拿示波器来测us级别的信号的,呵呵

出0入27汤圆

发表于 2007-12-12 15:48:23 | 显示全部楼层
进入调试状态后,窗口左侧其中有一项是sec,统计从开始执行到目前为止用去的时间。在延时程序的入口和出口各设一个断点,运行,记下入口和出口的sec值,两者相减其差值为延时值。

出0入0汤圆

发表于 2007-12-13 10:43:17 | 显示全部楼层
我一般都用9楼的方法。方便。

出0入54汤圆

发表于 2007-12-13 18:04:24 | 显示全部楼层
还没用过九楼这招呢,惭愧呀。。
不过现在学会了

出0入0汤圆

发表于 2007-12-13 23:53:04 | 显示全部楼层
在调用前打开定时器,调用后关闭定时器。也可以知道时间啊

出0入0汤圆

发表于 2007-12-24 17:16:25 | 显示全部楼层
9楼的方法比较好!

出0入0汤圆

发表于 2012-5-29 17:17:52 | 显示全部楼层
在需要测量程序的开始和结尾处置标志位,这个标志和IO输出联系起来,通过示波器测量程序运行时间,很准确。

出0入0汤圆

发表于 2012-5-29 17:36:54 | 显示全部楼层
用示波器或软件仿真模式都可以得到软件运行时间。汇编语言计算的方法太累人。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 00:21

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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