刚刚在给darling写DSP报告的时候,突然想起来昨天软件工程的考试中有一道算法的优化题目,程序看上去很简单,就是矩阵元素就和。
由于之前一直做高级语言的开发,对于这样循环体优化,感觉十分的不解,看上去并没有什么可优化的地方。
其实在嵌入式开发中,这样的优化是有必要的,因为在程序运行时,循环代码执行的时间在程序总执行时间中占了很大的比重,因而循环代码的优化对程序速率的提高有很大作用。在数据处理过程中,循环体用得较多,处理量较大,坏的编程风格会浪费不必要的时间。
一般应注意:在循环体内不要包含调用;循环体不要有过多的指令;对于多重循环,如果内层循环体较短,可以考虑打破该循环体,与外部循环体结合,比如可以通过将内层循环展开,减少分支跳转次数;将与循环变量无关的判断语句移到循环体外。
也就说,我们这里可以通过将内层短循环展开的方法来提高算法的执行效率。
当然,这种级别的优化只会在资源紧缺的嵌入式设备上体现出来