CG@CPPBLOG

/*=========================================*/
随笔 - 76, 文章 - 39, 评论 - 137, 引用 - 0
数据加载中……

《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 阅读(354) 评论(0)  编辑 收藏 引用 所属分类: 《C++设计新思维》读书笔记


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理