设为首页 加入收藏

TOP

4.1 效率和重用性
2013-10-07 15:02:48 来源: 作者: 【 】 浏览:67
Tags:4.1 效率 重用

第4章 效率

与其他单一的原因(包括盲目愚蠢的想法)相比,效率(指无法有效地获得效率)是计算机犯罪的主要原因。

-Wm.A.Wulf

效率是可重用代码的本质特性。在这一章里,我们将讨论如何设计和实现可重用代码,来提高下面资源的使用效率:程序创建时间(包括编译时间、链接时间和实例化时间)、代码大小、运行时间和内存占用量。

4.1  效率和重用性

大多数程序员认为效率是重用性的一个本质特性。对于任何程序库,无论设计得如何优雅,如果严重地降低了程序的效率,那么它还是不能得到重用的。就如程序库的使用,即使只是增加了少量的编译时间,但对于要编译几千个源文件的开发团队,如果这些文件的创建需要几天时间的话,他们还是不能忍受这微小的额外时间的。因此,对于编写实时应用程序的程序员,他们拒绝使用导致应用程序不能满足时间约束的程序库;对于嵌入式系统(例如银行自动柜员机)的程序员,他们也不会使用可执行文件占用的空间比目标机器的可存储字节数还要大的程序库。

在理想情况下,开发者希望可重用代码可以和自己编写的代码一样:具有一样快的速度和一样的代码大小。但遗憾的是,这只是一种理想情况,并且几乎是不能实现的。我们都清楚,可重用代码必须是在很多情况下都能得到很好应用(见1.3.2节)的代码;而在某个特定情况下最大化地优化可重用代码,必定导致在其他情况下这些代码失去很好的重用性。幸运的是,一段可重用代码的成功与否,并不在于它是否有和自己编的代码一样高的效率。现在让我们来考虑运行时间,一个大家经常凭经验引用的法则就是:程序90%的运行时间花费在10%的代码上面(或许你听说过80%运行时间花费在20%的代码之中);于是,如果一段可重用代码并没有用在这10%或20%运行频率很高的代码之中,那么这段可重用代码就不需要最优化了。而且,90/10或者80/20法则对于其他的效率量度问题(如创建时间、内存占用量等)同样是适用的。此外,只要可重用代码不对效率产生过大的影响,程序员肯定会认识到使用可重用代码所带来的其他好处的(如他们不需要再次自己编写相同的代码;可重用代码是已经经过很严格测试的代码,因此也就具有更好的可靠性,并提供了很好的文档资料等)。

总而言之,可重用的C++(www.cppentry.com)代码应该尽量少耗用下列资源:程序创建时间、代码大小、运行时间、空闲存储空间(free store,也叫空闲存储区、自由存储空间)和堆栈空间;我们将在下面各节分别讨论这些资源。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇4.2.2 实例化时间(1) 下一篇4.3.3 模板特化大小

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: