Unity池内存,碎片

Unity池内存,碎片

池内存最基础的原理

1.FiFo 队列 全称 First - in / First - out
2.FiLo 栈 全称 First - in / Last - out

栈的顺序是存储。
举个例子:在一个桶里持续往里放东西,最底下的永远在最底下,是有序的,数组持续往后加。
栈是有序的所以说它是不会出现碎片的。

从而引出来一个问题,什么是内存碎片呢?又是怎么产生的呢?

栈内存,栈内存是永远不会出现内存碎片的,因为它会叠加相当于它是无缝的所以说它是不会产生碎片。

接下来我说一下碎片是怎么产生的呢?
它是从堆内存出来的。
堆内存如同一个大大的棉花糖,我要拿一份内存吃掉它,系统会随机找到满足要求的地方抠出来,像一个蛀虫一样吃掉,当内存区域内存饱和的时候,它们中间狭小的缝隙就是内存的碎片,因为你永远都无法拿到。

下图就是一个堆内存的图,中间狭小的地方就是内存碎片
在这里插入图片描述

当然怎么才能去除内存碎片呢??

只能把你所有所占用的内存空间,重新整理,重新排序,一个一个标识好之后我以一个存续的方式声明我的空间划分我的内存,这时候,重新排列后才会把内存碎片干掉。

上面讲的就是一个池,池内存的过程。
池的概念就是我们内存的生成和分配的概念。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值