码迷,mamicode.com
首页 > 编程语言 > 详细

Unity池内存,碎片

时间:2019-08-14 21:36:39      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:com   就是   inf   概念   方式   src   图片   产生   fifo   

池内存最基础的原理

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

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

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

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

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

 

下图就是一个堆内存的图,中间狭小的地方就是内存碎片

技术图片

 

 

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

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

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

Unity池内存,碎片

标签:com   就是   inf   概念   方式   src   图片   产生   fifo   

原文地址:https://www.cnblogs.com/CourageWei/p/11354718.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!