转载请注明原帖地址http://blog.youkuaiyun.com/snowolf_538/article/details/6778467
==============================================================
在嵌入式设备中,往往是属于资源受限的系统,怎样提高嵌入式软件的性能,是一个很重要的问题。本文根据笔者的经验,对一些方法进行了归纳和总结,其实不仅仅适用于嵌入式软件中。本文并不会对每一种方法进行很深入的探讨,仅仅是提出一个思路而已,以期起到抛砖引玉的作用。
1, 替换算法
这个是很常见的一种性能优化方法。比如,最常见的就是在排序算法的使用上,显而易见的是冒泡排序,但我们还可以采用其他如快速排序的方法来提高。需要注意的是,要根据当前性能的瓶颈来从时间复杂度和空间复杂度两个层面来选择合适的算法。
2, 汇编法
汇编法的含义并不是要把整个的过程都使用汇编来改写,而是把其关键部分进行改写,此方法需要去了解特定机器的汇编语法。笔者曾经做过一个嵌入式设备里面的播放器,需要对加密的影片进行播放,其必然涉及对每一帧进行解密。考虑到嵌入式的性能问题,采用了简单的对称加密算法Blowfish,但实际测试发现,播放时依然很卡。然后我们对Blowfish中的核心函数用汇编进行了改写,与C编译器生成的代码相比节约了三分之二的指令,测试结果非常满意。
3, 空间换时间
此方法在于进行数据结构设计时充分考虑到性能问题。曾经有一个项目,按照网络协议的定义