Day 27 记忆体的管理

记忆体区块称为堆叠(heap),记忆体管理会有个控制块,而这个控制块在使用时,会将固定的区块配置进去,里面某些区块可能不能使用或者不适用於这个控制块的需求时,就会产生记忆体碎片,记忆体碎片普遍分成两种:

(1)内部记忆体碎片:内部记忆体碎片是已经被分配出去的记忆体,却不能被利用的记忆体。这种状况,就是要等到最後任务结束後,才会在使用这些碎片。

(2)外部记忆体碎片:外部记忆体碎片是还没有被分配出去的记忆体,但由於这些没被分配出去的记忆体太小了,所以无法分配给空闲或新的记忆体区块。

此外,如果有些记忆体区块的任务引用了虚拟位址,就可以允许记忆体压缩,但是,如果任务已经配置了记忆体区块,那就不能够将记忆体作压缩了。

某些记忆体的也会对记忆体作架构上的特定需求,此时,就会需要记忆体对齐(memeory aligment),因此,记忆体的配置还是要看任务的需求来配置才行。

如上述所说,有些记忆体会成为碎片,或者闲置的状态,那有没有机会找到空闲的区块呢?通常可以用函数来找出空闲的区块,并且予以合并使用。

之前,我们提过嵌入式语法的记忆体是使用固定大小的记忆体池,如果一个成功的配置,通常就能有效地从记忆体池内,取得锁钥的记忆体区块,不过,嵌入式与法的缺点,就是太多碎片会存在这个记忆体池内,使用效率上就会比较浪费了。


<<:  Day-27 : Model 一对多

>>:  Day-21 物件与原型链

DAY6-JAVA的函数

1.函数 在JAVA中,我们把函数称做method。 函数可用的语法如下: public stati...

D3JsDay10 遇到元素资料不相等,用函式解决高人一等

绑定的资料和画面上的元素不相等 enter()函式—没放入元素的资料 先看以下程序码 <bod...

[Day20] Flutter GetX routing

这篇主要讲GetX在页面切换之间的路由(上下页的前後文关系) 初步先建立一个routes的资料夹 里...

[Day5] 策略买卖讯号回测

延续前一天的程序码,首先先把图片里的程序码搬到箭头的地方,固定前面放函数後面放程序,这样看起来比较清...

TOGAF架构框架

TOGAF由国际标准权威组织The Open Group制定。The Open Group於1993...