内存碎片

1、内存碎片是虚拟内存空间的概念。程序员看到的只有虚拟内存空间,物理内存空间是透明的。

2、内存碎片分两种:内部碎片和外部碎片。

3、内部碎片:内部碎片是之由于采用固定大小的内存分区,当一个进程无法完全使用分给它的固定内存区域时,就产生了内部碎片,通常内部碎片难以避免的。

4、外部碎片:是由于无规划的申请和释放内部,导致没有连续的整块内存区域,导致需要申请连续的内存区域时,无法申请成功。

5、非内存操作语言可以不用关心内存碎片的问题,因为心有余力不足。

6、对一块连续的内存进行无规划的申请和释放,会导致内存碎片的产生。


内存碎片的根源是由于brk系统调用,每次使用brk申请新的小内存区域,都会将堆顶指针向高地址推,而如果之前申请的内存释放了,但是新申请的未释放,就会导致堆顶指针无法紧缩,这种空闲下来的内存可以复用,只有新申请的内存区域小于或刚好等于这块区域的大小就可以使用,如果大了的话就无法使用,需要继续推动堆顶指针。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值