统计代码运行时间

来源:互联网 发布:高分遥感数据定义 编辑:程序博客网 时间:2024/04/29 12:20

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耗时量级比这个大的多。

原创粉丝点击