(define (cuigang) (coding))

(define (coding) (coding))

《C++设计新思维》读书笔记(21)

3.13 运用typelist自动产生classes(不好意思,没太看懂,略去)

4 小型对象分配技术

4.1 缺省的Free Store分配器

由于某些神秘原因,系统缺省的free store分配器速度极慢,恶名昭彰。其中一个可能的原因是,它通常只是C heap分配器(malloc/realloc/free)的浅层包装。C heap分配器并未特别针对小块内存的分配进行优化。C程序通常十分有条理地、保守地使用内存,却不会采用任何导致小块内存被大量分配的手法或技巧。C程序通常分配中大型对象(数百或者数千个bytes)。

除了速度慢,C++缺省分配器的通用性也造成小型对象空间分配的低效。(细述,指对小对象会额外分配空间,以保证不小于最小区块,而且链表的薄记管理部分也开销很大,对小对象比较多时尤为明显)。

C++中,动态分配很重要。执行期多态性和动态分配的联系最为密切。“Pimpl手法就要求free store分配取代stack分配为前提。

因此,在迈向高效C++程序开发的道路上,缺省分配器的低劣性能成为一种障碍。老练的C++程序员会尽量避免使用采行free store分配行为的语言构件,因为根据经验他们知道它的成本高昂。缺省分配器不仅是个具体问题,还可能成为一个心理障碍。

posted on 2008-01-10 22:54 cuigang 阅读(19) 评论(0)  编辑 收藏 引用 所属分类: 《C++设计新思维》读书笔记


标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]