内存碎片

内存碎片是指当系统报告内存耗尽时,而其实内存中也还存在未被使用的内存资源。

内存分配程序操作内存浪费的情况有:额外开销、外部碎片、内存碎片。
内存分配程序为管理内存,需存储一些描述其分配状态的信息,这些存储的信息包括任何一个空闲内存块的位置、大小和所有权,以及其它内部状态详情。这些信息占用了一部分内存,造成了额外开销。
外部碎片是由于某些未分配的连续内存区域太小,以至于不能满足任意进程的内存分配请求,从而不能被进程利用的内存区域。
现代操作系统采用段页式内存分配方式,将进程的内存区域分为不同的段,然后将每一段由多个固定大小的页组成。通过页表机制,使段内的页可以不必连续处于同一内存区域,从而减少了外部碎片。
内部碎片是由于采用固定大小的内存分区,当一个进程不能完全使用分给它的固定内存区域时就产生了内部碎片,通常内部碎片难以完全避免。
当多次调用malloc和free时候,可能会导致大量碎片,导致malloc函数性能下降。为尽量避免内部碎片,可以采用伙伴算法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值