免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 9027 | 回复: 35
打印 上一主题 下一主题

[C] 一般的说 代码优化有哪几种方法? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-16 13:51 |只看该作者 |倒序浏览
一般嵌入式系统中  代码执行效率要求都是很高的    尽可能的减少cpu以及内存时空上的开销
那么 想问下   给一段仅仅能实现功能   但未注意效率的代码而已  进行优化的话  从方法上说有哪些
或者举个具体的例子 然后再说优化方法

以前零零碎碎看过这方面文章和帖子  今天像系统的总结学习下   请诸位达人指点一二

论坛徽章:
0
2 [报告]
发表于 2008-10-16 13:57 |只看该作者
优化算法,从O(n^2)优化到O(n)甚至O(1)

论坛徽章:
0
3 [报告]
发表于 2008-10-16 14:01 |只看该作者
呃  除了算法以外的东西      语言编译器方面的
比如用位移代替乘除   消除循环   等方法  具体说一说

论坛徽章:
0
4 [报告]
发表于 2008-10-16 14:03 |只看该作者
算法最优的情况下,再进一步分析检测,找出性能瓶颈所在,优化局部代码,考虑汇编实现等

论坛徽章:
0
5 [报告]
发表于 2008-10-16 14:05 |只看该作者
其实对现在的机器来说,特别是现代编译器的优化能力,程序员在代码层面上的优化已经不是特别重要了

比如你说的位运算优化,编译器就可以替你实现

论坛徽章:
0
6 [报告]
发表于 2008-10-16 14:05 |只看该作者
c专家编程上说  :
标准的代码优化技巧包括:消除循环,函数代码就地扩展,公共子表达式消除,改进寄存器分配,省略运行时对数组边界的检查,循环不变量代码移动,操作符长度消减(把指针操作变成乘法操作,把乘法操作变为移位或加法操作)等

我觉得可以就这些方法 举几个例子展开讨论下   有的感觉不是很清楚

论坛徽章:
0
7 [报告]
发表于 2008-10-16 14:08 |只看该作者
原帖由 雨过白鹭洲 于 2008-10-16 14:03 发表
算法最优的情况下,再进一步分析检测,找出性能瓶颈所在,优化局部代码,考虑汇编实现等

呃  我就是像知道对于不同的情况 如何优化局部代码    以前没深入研究过
代码级而不是算法级的优化貌似也没书去介绍 或只是一笔带过。。。
有文章请诸位推荐下

还有编译器确实会对语言做优化  比如 i=i+1 i+=1  ++i  i++  作为自增会被优化成一样   但面试官恐怕更愿意听你能做到的  而不是编译器来做的。。

论坛徽章:
0
8 [报告]
发表于 2008-10-16 14:12 |只看该作者
c专家编程上说:
...用优化机器代码来解决问题,并把指令作为整形数组存储在程序中。由于在程序中覆盖堆栈上的返回地址是非常容易的,所以程序可以跳转到这个整形数组并逐条执行这些指令。


感觉比较神奇  不知道具体怎么实现。。。

论坛徽章:
0
9 [报告]
发表于 2008-10-16 14:13 |只看该作者
这个论题还是比较大,网上有比较多信息,不过我一般不太注重代码层面的优化,除非性能不可接受:

http://blog.csdn.net/quanming1119/archive/2005/08/10/450545.aspx

论坛徽章:
0
10 [报告]
发表于 2008-10-16 14:16 |只看该作者
《代码优化:有效使用内存》这本书就是讲优化的

http://www.amazon.com/Code-Optim ... 24137536&sr=8-1
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP