1.12.2.2 性能问题
一个普遍的问题是,“OOP不会自动使得我们的程序变大和变慢吗?”回答是“不一定”。大多数传统的OOP语言是以实验和快速原型方法设计的,这样实际上就决定了其在规模上的扩大和在速度上的下降。然而,C++(www.cppentry.com)是以生产性程序的方式设计的。当用快速原型方式时,我们能尽可能快地将构件组合在一起,而忽视效率问题。如果使用了第三方库,通常已经由它们的厂商优化过了,在这种情况下,用快速开发方法,效率也不是问题。如果我们有一个喜欢的系统,它足够小和快,就继续使用,如果不是,就调整,用描述工具(profiling tool),首先改进速度。这可用简单的C++(www.cppentry.com)内部功能完成。如果无效,就寻找对底层实现的修改,但要做到不改变所需要的特殊类。只有当全都不能解决问题时,才需要改变设计。性能在设计中的地位很重要,是主要的设计标准之一。运用快速原型法,可以尽早地了解系统性能。
如前所述,在C和C++(www.cppentry.com)之间的规模和速度之比常常不同,但一般是10%之内,而且通常更接近。当使用C++(www.cppentry.com)代替C时,可能在规模和速度上得到大的改进,因为为C++(www.cppentry.com)所做的设计很大程度上不同于为C所做的。
在C和C++(www.cppentry.com)之间比较规模和速度的证据至今还只是传说性的估计,也许还会继续如此。尽管有一些人建议对相同的项目用C和C++(www.cppentry.com)同时做,但也许不会有公司把钱浪费在这里,除非它非常大并且对这个研究项目感兴趣。即便如此,它也希望钱花得更好。已经从C(或其他过程型语言)转到C++(www.cppentry.com)(或一些其他OOP语言)的程序员几乎一致地都有在程序设计效率上得到很大提高的个人经验,这是能找到的最引人注目的证据。