关于嵌入式(移动)软件的性能问题
2010-09-16 00:00:00 来源:WEB开发网核心提示:算法复杂度,(永远都很重要)直接,关于嵌入式(移动)软件的性能问题(3),(减少不必要的层级)尽可能的预处理:把可以放在PC上提前计算的都放在计算,固化,反馈/分析很重要,为什么我们设计优良的结构没能达到设计指标,也可能有人认为这和动态实时更新数据是矛盾的,这关键在于结构分离是否成功
算法复杂度。(永远都很重要)
直接。(减少不必要的层级)
尽可能的预处理:把可以放在PC上提前计算的都放在计算,固化。
也可能有人认为这和动态实时更新数据是矛盾的,这关键在于结构分离是否成功,找到固定的映射函数和动态的边界。
比如数据的处理要经过——>转换A——>转换B——>转换C,那可以在PC上提前把转换A,B,C编译成一个映射表O,嵌入端只需要转换O。
编译就是完成数据结构形式的转换,使得在终端上算法能更直接的访问数据。
关键代码优化
重写关键函数。开源代码不会专门为你的需求而优化。
为你的硬件去优化。你的目的终端是Arm11?有SIMD指令集,是ArmV7系?有NEON,支持OpenGL ES?用它们重写关键的小部分代码,性能会得到质的提升。
反馈/调优
优化是个不断的过程,但首先让你的系统有性能反馈。反馈——〉分析——〉调优,是个循环的过程。
BUG。其实很大比例的工程性性能问题都是BUG引起的,不过它没导致崩溃和功能异常,就没人认为它是BUG,反馈/分析很重要,为什么我们设计优良的结构没能达到设计指标,很可能就是一个BUG在做怪。
更多精彩
赞助商链接