随笔分类 -  Bullet Physics

Bullet
bullet中的内存池
摘要:1。概念(见于Baidu) 内存池(Memory Pool)是一种内存分配方式。 通常我们习惯直接使用new、malloc等API申请分配内存,这样做的缺点在于:由于所申请内存块的大小不定,当频繁使用时会造成大量的内存碎片并进而降低性能。 内存池则是在真正使用内存之前,先申请分配一定数量的、大小相等(一般情况下)的内存块留作备用。当有新的内存需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存。这样做的一个显著优点是尽量避免了内存碎片,使得内存分配效率得到提升。2.Bullet内存池(btPoolAllocator.h) 内存池可以是反复的new delete更有效率,而且很有 阅读全文
posted @ 2012-04-08 15:41 littlepearl 阅读(281) 评论(0) 推荐(0)
内存分配
摘要:void *operator new( size_t, void *p ) throw() { return p; }这个是堆内存进行分配调用。如果需要对内存分配进行不同的分配策略,则需要重载operator new。这样做,我们可以预先分配好一大块内存,按照程序需求进行管理。比如gb中小内存的分配。如果需要在已经分配的内存上面建立一个对象则需要进行placement new,这个只是operator new的另一种实现,这样提高分配速度(new的时候需要在堆中查找可以分配的空间),因为内存之前已经分配好,不需要进行当前内存大小是否符合本次分配。但需要重点注意申请是需要显示调用构造和析构函数, 阅读全文
posted @ 2012-04-05 18:32 littlepearl 阅读(265) 评论(0) 推荐(0)