打印

tuning

[复制链接]
1169|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
拿起书本|  楼主 | 2012-5-12 23:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最佳化是case by case 的事情,但还是有以下几个重点。
1,在进行程序最佳化之前,先要有一个稳定,可靠的版本,而且在确定最佳化完成前,不要将程序汇入正式的版本之内。
2,调整编译器最佳化的等级,但务必记得一件事,编译器无法帮程序设计师完成所有最佳化的任务,尤其是程序风格不佳或写得零零落落的程序。
3,优先使用改良算法的手段来作效能调整,例如,无论再怎么精简的程序也无法弥补 bubble sort与quick sort 间的效能差距。
4,以空间换取时间。如果内存还剩余的话,可以试着思考利用多余的内存空间来改良算法,进而改善效能。
5,不要把程序最佳化与“用汇编语言修改”混为一谈,首先应该找到程序的热区,也就是程序中效能的瓶颈所在,再利用所有学到与 最佳化有关的技巧来试着修改它。
6,检查并尽量减少for 循环或while 循环内的迭代次数。
7,在迭代次数较多的for循环或while 循环,尽量精简循环内的程序。
8,牢记不同的内存有不同的速度,尽量把热区和程序或资料移到速度较快的内存上执行或操作
9,对大部分CPU而言,一次操作偶数或4B的整数倍的资料会有比较好的效能,检查程序中是否可能用到奇数的地址,或一次操作奇数个byte 的程序代码,如果有的话,应参考cpu date sheet试着去修改它。
10,不要试图从头到尾改写某个模块为汇编语言,先检查编译器产生的汇编语言码是否有明显的效能问题,再根据这份汇编语言码来修改即可,在修改时,应仔细研究CPU各个指令的效能,尽量使用效能较高的指令。
11,去除不必要的程序代码,许多用以除错的程序代码会忘了去除,导致在正式版本中,系统去执行了许多没有必要的程序段

最佳化的观念与技巧差不多就这些了,如果你程序设计与计算机系统的观念够扎实的话,等你碰到到问题你应该就会知道有哪些方法与技巧可以使用,不用太担心。

相关帖子

沙发
tianli1980| | 2012-5-13 17:10 | 只看该作者
效能问题可说是嵌入式系统开发者心中的痛,除了硬件效能本来就为能与PC相提并论外,使用者对电子产品效能的要求也非常苛刻。谢谢分享。

使用特权

评论回复
板凳
huangfeng33| | 2012-5-13 17:16 | 只看该作者
不同的产品有不同的硬件设备,不同的效能需求以及不同的复杂度,所以效能调整的困难度也是相差很远的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:好好学习,天天向上!

519

主题

4195

帖子

30

粉丝