内存池的意义就是一次分配比较大的内存空间,然后以后都在里面分配小的空间,加快内存分配速度,但我用boost好像发现boost的内存池有点问题.boost::pool<>p(1024*3000); //分配了3M的空间
char * a=(char *)p.malloc();
p.free(a);
怎么我分配了3M空间,但发现系统的内存多用了200M(不是程序的内存),是怎么回事呢?有用过boost内存池的朋友吗?
char * a=(char *)p.malloc();
p.free(a);
怎么我分配了3M空间,但发现系统的内存多用了200M(不是程序的内存),是怎么回事呢?有用过boost内存池的朋友吗?
解决方案 »
- 急问:其他公司开发的activex控件,VC6.0调用正常,但是VC2008就出现下面错误
- 为什么小图标不能显示 ?
- 请问初学 GDI+ ,有什么好的书学习吗?
- 急急急。。。。。。。。。。。。。
- 读取AUTOCAD DXF文件,代码编译通过,但运行出错,请高手指点!
- 怎么样将一个gif/jpg的图片载入自己的程序
- 请问用vc怎么写nt服务?
- 鼠标消息丢失的问题,高手帮忙啊!!!
- if(...)else(...)必有一个满足条件但是一个都进不去
- 建议:各位VC专家,大师,宗师,小弟初学VC问题之菜,如不屑一答......
- 我在VC中用ADO方式访问ACCESS,要的得到某一字段中最大奇数(偶数)所在的字段,SQL语句是正确的,嵌套到我的VC程序中却执行不了
- BSTR *如何赋值
char * a=(char *)p.malloc(); //这个地方您没有指定分配的内存长度默认为内存池最大长度。
p.free(a);
且boost::pool <>p(1024*3000); //指示说明pool每个block为3M
char * a=(char *)p.malloc(); //告诉pool分配一个block
p.ordered_malloc(10)
char * a=(char *)p.malloc();
一样是分配200m的内存,怎样限制它分配的最大长度呢?