对FOR循环优化心得
在程序中经常用到FOR循环,当一些算法实时性要求非常高时,对FOR循环的优化有时可以带来意想不到的收获。 通常使用的FOR循环语句形式有: int i; for (i=0;i<n;i++) { } 这种循环形式,我想一般人都用过,对这种循环的优化如下: int i; for (i=n;i>0;i--) { } 明眼人一下就看出来了这两种形式的区别,这里涉及到编译器对判断语句的编译。 在CCS中,对于i>0使用的是AGT也即大于等于0的后缀,而对于i<n,会多执行一条减操作的语句,然后再进行比较,这样,相对于第一种循环,第二种操作将直接减少N条指令执行时间,而这时间的节约只是一个编程习惯上稍改一下即可实现的。 |
程序实例说明
在图片中,简单的写了两种循环的代码,然后编译,查看混合汇编与C的结果 |
-
testc.jpg (49.08 KB)
- 上一篇:从dct简单了解一种线性汇编优化方法
- 下一篇:DSP程序优化方法
-
1楼
cang_rong2046 2010-09-10 17:03发表 [回复]
- TI的编译器会自动优化这个,后者并没有什么改观。