您的位置:首页 > 编程语言

统计代码运行时间

2010-12-14 21:53 211 查看
1. 在CCS 3.3中

1)设置断点,运行程序到此处

2)点击"Profile"--"Clock"--"Enable",来使能CLOCK功能。接下来点击"Profile"--"Clock"--"View",在CCS最下面会出现一个类似于秒表的工具,旁边显示数字“0”。

3)F10运行, 秒表的工具,旁边显示数字就是代码运行的时钟周期, 这个数乘以时钟周期就是函数执行时间。

2. CCS 33另一种方法

profile-->setup出现对话框,按下对话框左上角的enable/disable profiling按钮, 就使能了统计时间的钟表。

选中一段程序后,点右键,在profile中选range看看setup对话框的range中出没出现你刚选中的内容,而且确定他们是不是enable的。

选profile-->viewer,又出现一个对话框。然后run程序了。注重:这样做程序将运行得特殊慢,比正常运行慢很多,可能是因为要统计时间的关系。程序跑完,在viewer的对话框中会出现统计数据,其中重要的数据是INCL TOTAL:指这段代码消耗的所有时钟周期,EXCL TOTAL:指这段代码运行一次消耗的时钟周期。

1 兆赫 MHz 10^6 Hz 1 000 000 Hz,时钟频率为600MHz,则1/600MHz = 1.67ns,是instruction cycle time。

2. clock函数

用clock函数是可行的,尤其是优化以后的代码很难确定PROFILE的位置。你看一下.asm的输出就知道了,clock没有这个问题。有一点要注意,clock函数如果直接在DSP上跑时间是不准的,必须用load6x命令在DOS或命令行状态下加载,这样结果就准的多。当然,调用函数本身的开销也是要考虑的。

3. DM642时钟频率为600MHz,则1/600MHz = 1.67ns,是instruction cycle time。
对CIF图像进行一次加减等操作,不考虑io及取指耗时,纯进行计算,耗时352x288x1.67=0.2ms。实际运行时io耗时量级比这个大的多。

[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: