手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>C/C++>列表

C、C 程式的优化之路

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

在高级语言中,程式的优化主要应该从数据结构、算法、控制流程等方面入手。各种语言各有他自身的特点,我们只能根据具体的语言来说明代码优化的方法。当然,高级语言太多,不可能把每一种语言都拉进来,主要就谈谈C,C++,JAVE,Delphi等语言相关的 代码优化。而对于其他一些语言,也 能够从这些方面中找到适合自己的优化方案。

对C++程式的优化一定是大多数程式员最感兴趣的话题,在此先说说基于C,C++的代码优化,希望能起到抛砖引玉的作用。

1、在 ANSI/ISO C/C 规范中明确建议:“不要使用macro和。h,应该使用程式中的常量定义和 函数替代”。Macro(宏)对程式员来说的确带来过不少方便,但是 大量的宏定义往往又给我们带来更多的麻烦。建议使用inline内连函数替代宏调用。内连函数又宏调用的功能,且避免了宏调用的弊端。

2、集合,子集类型是不被标准的 C++的对象结构式最复杂最灵活的。在Borland的 C++ Builder中,就提供了源于Pascal的集合,这对我们追求代码高效率的 研发者来说,是不可取的。

3、字符串处理是Pascal的强项之一。但是C 中的string/AnsiString等是用类/数模拟的,所以性能又很大损失!建议使用C Builder/Delphi的程式员尽量不使用AnsiString。

4、C 中的运算符new和delete相对于C中的malloc()和 free()函数更优越。他们虽然都提供了动态和释放分配内存的 方法,但是使用new和delete 能自动返回正确的指针类型不用进行强制指针转换。另外还能够避免一些错误。

5、过量的异常处理往往导致程式难于使用且效率低下。C 在一场处理方面存在一定的不足,C Builder中对一场进行了一定的扩充,使程式的异常的捕获和处理更方便。于是很多程式员在写程式的时候明知道不会出错的代码也要进行异常处理,这无异于画蛇添足。

6、真确的使用循环。使用循环虽然简单,但是使用不当,往往可能带来很大的性能影响。原则是将问题分为解小的循环,不在循环内做多余的工作(如赋值,常量计算等),避免死循环。还能够考虑将循环改为非循环来提高效率。

7、类的主要好处之一是他封装的特征。这个特征对类对象的使用着隐藏了内部的工作。这本是很好的事情,但不幸的是类的使用者往往不能确定类中各种方法如何影响性能,这样就很容易调入性能的陷阱中。比如:常用的MFC,VCL他们都是提供了丰富的类库,我们在使用的时候应该选择效率较高的类和调用效率高的方法函数。

8、尽量在类设计时减少虚函数的数目。函数地址在运行时进行滞后绑定,这对于面向对象的编程语言来说时相当重要的。C 不同于JAVA,smalltalk的是让程式研发者自己决定对那个函数进行滞后绑定。C 之所以这么做,使出于对性能方面的考虑,特别是对多态性提供滞后绑定是要付出相当大的代价的。即使是只有一个虚函数得类,对他的每一个实现都需要一个虚函数表和一个指向他的指针。指向虚函数表的指针必须在世现类实例实进行初始化。另外,每当一个虚函数被调用时,必须为函数在运行时进行的查找付出代价。



[1] [2] 下一页

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

热点关注
IDC资讯 虚拟主机 域名注册 托管租用 vps主机 智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 价格总览 | 资讯中心 | 友情链接 | 网站地图 | 招贤纳士 | RSS