boost::singleton_pool 之ordered_malloc/ordered_free谨慎使用。 boost::singleton_pool 是可以在多线程环境下使用的内存池,其malloc/free性能还不错。但是,如果其ordered_malloc/ordered_free在频繁的使用,会产生内存碎片,从而导致申请不到合适的内存。因此建议谨慎使用。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 谢谢LZ。还没有使用过boost。 同上,还没有使用过boost库 boost的pool的长处是固定长度的内存管理,如果是非定长的话,他的算法不是最优。另外,他还有一个优点,就是类似java一样,你可以只管申请,不用释放,在析构里面他会自动给全部释放掉。因此,如果程序不是长时间频繁的进行非定长内存分配和释放,那么boost的pool是个不错的选择。还有一个内存池nedmalloc很不错,很值得推荐。我最近一段时间来一直在学习tcmalloc和nedmalloc,还有boost的pool。最终,我还是选择nedmalloc。 用定长是可以有效避免内存碎片。以前自己也做过内存管理,处理网络数据包,每个数据包是一个类,然后有一个回收队列,开辟过的数据放到回收队列,可再利用。这样简单的设计也能抗不久,不知道boost效果怎么样,你们的服务器是什么机子?内存很小吗? 多久导致出现这个现象。 内存碎片只有在跑7*24下&&程序内存占用高,导致。LZ出现这个问题也可以考虑下内存总量把关上。 用定长的是肯定没有问题。我采取的是非定长的模式。大概坚持了5-6个小时后,再找不到合适大小的内存了,因为内存池里面的内存都是碎片。后来就采用最基本的new/delete反而一点问题没有。如果要采用非定长的模式,我个人还是推荐采用tcmalloc或者nedmalloc。效果非常明星。 boost::singleton_pool 真是让人失望。仔细看了他的代码,居然有一次性的内存泄漏。虽然无关紧要,但是还是感觉不舒服。他在构造里面创建了池,退出时居然不析构掉。唉....vc就会报内存泄漏。 我用的版本是 boost 1.48 没用过,但是对boost很期望。 vector 菜鸟求助 如何得到dialogbar的指针?? 如何快速地读取vector中的数据? BSTR类型跟什么类型等同? 请问蚂蚁爬绳子的问题? 进程问题 一个关于控件的问题 这样为什么老是出错!!!!!!!! vc月来月找到感觉了,刚开始时好晕~~~虽然现在还是晕,但好多了,呵呵~~~ VB中可以通过 refenerce ms word 9.0 object 来引入word对象库,在VC中如何引入? socket中select函数检查数据来到问题。 消息处理函数里怎么处理 异步函数?
还没有使用过boost。
同上,还没有使用过boost库
另外,他还有一个优点,就是类似java一样,你可以只管申请,不用释放,在析构里面他会自动给全部释放掉。因此,如果程序不是长时间频繁的进行非定长内存分配和释放,那么boost的pool是个不错的选择。还有一个内存池nedmalloc很不错,很值得推荐。我最近一段时间来一直在学习tcmalloc和nedmalloc,还有boost的pool。最终,我还是选择nedmalloc。
然后有一个回收队列,开辟过的数据放到回收队列,可再利用。这样简单的设计也能抗不久,不知道boost效果怎么样,
你们的服务器是什么机子?内存很小吗? 多久导致出现这个现象。 内存碎片只有在跑7*24下&&程序内存占用高,导致。LZ出现这个问题也可以考虑下内存总量把关上。
他在构造里面创建了池,退出时居然不析构掉。唉....vc就会报内存泄漏。