我被推荐了一本名为:
Andrew Koenig和Barbara E. Moo的加速C++实践编程Addison-Wesley,2000 ISBN 0-201-70353-X
本书的基础是面向对象编程在内存方面非常浪费,并且大多数源代码不应该以这种方式编写,而应该使用所有内联函数调用和过程编程.
我的意思是我知道大多数编程书籍都有与牛奶相同的保质期,但如果您编写客户端/服务器应用程序(数据库,服务器和所有)(不是设备驱动程序或视频游戏),那么真的值得拥有的麻烦不可维护的代码只是为了加速?
或者仅仅让应用程序在客户端的旧机器上运行是否值得?或者能够在一个盒子上运行更多服务器?
哇,不.
现代C++编译器非常出色.大量内存使用更多是设计不佳或大内存数据集的症状.C++类所需的开销很小,而且现在确实不是问题.
面向对象编程是一种以这样一种方式编写组件的方法,即它们可以逻辑地将与单个概念相关的动作分组(即,"汽车"的所有动作或"猫"的所有动作).这并不是说它不能被滥用来编写意大利面条对象,但正如他们所说,你可以用任何语言编写COBOL.
作为另一个例子,现在很有可能并且接受用C++和对象编写嵌入式软件平台.轻微的速度降低和内存使用量增加(如果有的话)通过增加可维护性和代码可用性来偿还一千倍.
我没有看过这本书,但我很难相信他们写了一本书,"其基础......是面向对象的编程是非常浪费记忆的"(完全披露:安迪和芭芭拉是我的朋友).
安迪永远不会说OOP浪费了记忆力.他会说一种特定的算法或技术是浪费的,并且在某些情况下可能会建议采用较少的OO方法,但是,他会首先争辩说,作为一般规则,OO设计不会浪费任何其他风格.节目.
OO设计浪费的论点很大程度上来自于C++"hello world"程序的EXE往往比C"hello world"程序的EXE更大.这主要是因为iostreams的printf更大(但是,iostreams会做得更多).