More Effective C++之效率[VC/C++编程]
本文“More Effective C++之效率[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
我猜疑一些人在C++软件开辟人员身上举行奥秘的巴甫洛夫试验,不然为什么当提到“效率”这个词时,很多程序员城市流口水.(Scott Meyers真滑稽 译者注)
事实上,效率可不是一个开玩笑的事情.一个太大或太慢的程序它们的长处无论多么惹人注目都不会为人们所承受.本来就应当这样.软件是用来帮忙我们更好地工作,说运行速度慢才是更好的,说需求32MB内存的程序比仅仅需求16MB内存的程序好,说占用100MB磁盘空间的程序比仅仅占用50MB磁盘空间的程序好,这简直是无稽之谈.并且固然有一些程序确是为了举行更复杂的运算才占用更多的时间和空间,但是关于很多程序来说只能归咎于其糟糕的计划和草率的编程.
在用C++写出高效地程序之前,必须熟习到C++本身绝对与你所碰到的任何性能上的问题无关.假如想写出一个高效的C++程序,你必须首先能写出一个高效的程序.太多的开辟人员都轻忽了这个简单的原理.是的,循环可以被手工展开,移位操作(shift operation)可以替换乘法,但是假如你所利用的高层算法其内涵效率很低,这些微调就不会有任何作用.当线性算法可用时你能否还用二次方程式算法?你能否一遍又一各处计算反复的数值?假如是的话,可以毫不浮夸地把你的程序比方成一个二流的参观胜地,即假如你有额外的时间,才值得去看一看.
本章的内容从两个角度阐述效率的问题.第一是从语言独立的角度,关注那些你能在任何语言里都能利用的东西.C++为它们供应了分外吸惹人的实现途径,因为它对封装的支持非常好,从而可以用更好的算法与数据构造来替换低效的类实现,同时接口可以保持不变.
第二是关注C++语言本身.高性能的算法与数据构造固然非常好,但假照实际编程中代码实现得很粗糙,效率也会降低得相当多.潜在危害性最大的错误是既简单犯又不简单发觉的错误,濒繁地构造和释放大量的对象就是一种这样的错误.过量的对象构造和对象释放关于你的程序性能来说就象是在大出血,在每次成立和释放不需求的对象的历程中,贵重的时间就这么流走了.这个问题在C++程序中很广泛,我将用四个条款来阐明这些对象从那边来的,在不影响程序代码精确性的底子上若何消除它们.
以上是“More Effective C++之效率[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |