linux应用中减少内存碎片

1.使用mem pool
一次性malloc一块大的内存,以后内存分配都从这块大内存中去分配,如何去管理这块内存就是mem pool该做的事情,其实它的原理类似于malloc的原理,只是这块大内存是固定的,不像malloc可以系统中去申请,所以管理上要比malloc简单,mem pool的实现有很多种,这里随便列举一两个:
但是这样在mem pool中又会产生碎片,但是该碎片不会影响到其他的模块或malloc,起到了碎片隔离的目的


2.使用obj pool
类似于slab分配器,由于是固定大小的obj分配器,所以在pool内不存在碎片
a)将slab.c移植到应用中
b)blockheap
c ) 其他的例子,如inode pool


由于需要预先分配一个pool,所以这种做法的缺点是浪费内存
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值