c++内存优化:二级间接索引模式内存池
来源:张宇(数据恢复) 责任编辑:栏目编辑 发表时间:2013-07-01 10:34 点击:次
.H内容如下:
- /*********************************************************
- 在一些不确定内存总占用量的情形下,频繁的使用new申请内存,再通过链表
- 进行索引似乎是很常规的做法。自然,也很难做到随机定位。
- 下面的内存池类是用二层索引表来对内存进行大块划分,任何一个块均只需索
- 引3次即可定位。
- 索引数量,每索引块的分配单元数量,以及分配单元的字节长度均需为2的整数
- 次幂(为了运算时的效率)
- //by:www.datahf.net zhangyu(zhangyu.blog.51cto.com)
- *********************************************************/
- class MemTable
- {
- public:
- MemTable(void);
- public:
- ~MemTable(void);
- public:
- void CREATE(MemTableIn *in_m);
- void DEL();
- LPSTR NEW();//分配一个unit
- LPSTR NEW_CONTINUEOUS(UINT n);//用于连续分配若干个unit
- UINT NEW(UINT n); //用于可碎片方式分配若干个unit
- LPSTR GET(UINT n);//用来获得第n个分配的指针地址
- int get_totle_unitnum();
- public:
- MemTableIn in;
- LPSTR **pDouble_Indirect;
- LPSTR lpBitmap;
- LPSTR *pIndirect;
- LPSTR m_lpFirstFree;
- int nFree[3];//0表示二级索引的自由,1表示1级索引的自由,2表示块自由索引号
- INT32 m_EndBlkUseredUnits;
相关新闻>>
- 发表评论
-
- 最新评论 更多>>