搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
Gausst松鼠会
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Pytorch之EfficientNetV2图像分类_efficientnetv2-s
2
探索POST请求:从原理到实践
3
NLP_知识图谱_图谱问答实战
4
Python 妙用运算符重载——玩出“点”花样来(1)
5
卷积神经网络CNN
6
从Tensorflow模型文件中解析并显示网络结构图(pb模型篇)_tensorflow pb模型
7
亚信安慧AntDB:实时数据洞察的利器
8
【数据结构】受限制的线性表——队列
9
关于图像分割GAN based 方法_gan图像分割
10
每天30分钟python(第一天)
当前位置:
article
> 正文
常见内存分配算法及优缺点_小内存算法的优缺点
作者:Gausst松鼠会 | 2024-04-10 23:57:57
赞
踩
小内存算法的优缺点
常见内存分配算法及优缺点
常见内存分配算法及优缺点如下:
(1)首次适应算法。使用该算法进行内存分配时,从空闲分区链首开始查找,直至找到一个能满足其大小需求的空闲分区为止。然后再按照作业的大小,从该分区中划出一块内存分配给请求者,余下的空闲分区仍留在空闲分区链中。
该算法倾向于使用内存中低地址部分的空闲分区,在高地址部分的空闲分区非常少被利用,从而保留了高地址部分的大空闲区。显然为以后到达的大作业分配大的内存空间创造了条件。缺点在于低址部分不断被划分,留下许多难以利用、非常小的空闲区,而每次查找又都从低址部分开始,这无疑会增加查找的开销。
(2)循环首次适应算法。该算法是由首次适应算法演变而成的。在为进程分配内存空间时,不再每次从链首开始查找,而是从上次找到的空闲分区开始查找,直至找到一个能满足需求的空闲分区,并从中划出一块来分给作业。该算法能使空闲中的内存分区分布得更加均匀,但将会缺乏大的空闲分区。
(3)最佳适应算法。该算法总是把既能满足需求,又是最小的空闲分区分配给作业。
为了加速查找,该算法需求将所有的空闲区按其大小排序后,以递增顺序形成一个空白链。这样每次找到的第一个满足需求的空闲区,必然是最优的。孤立地看,该算法似乎是最优的,但事实上并不一定。因为每次分配后剩余的空间一定是最小的,在存储器中将留下许多难以利用的小空闲区。同时每次分配后必须重新排序,这也带来了一定的开销。
(4)最差适应算法。最差适应算法中,该算法按大小递减的顺序形成空闲区链,分配时直接从空闲区链的第一个空闲分区中分配(不能满足需要则不分配)。非常显然,如果第一个空闲分区不能满足,那么再没有空闲分区能满足需要。这种分配方法初看起来不太合理,但他也有非常强的直观吸引力:在大空闲区中放入程式后,剩下的空闲区常常也非常大,于是还能装下一个较大的新程式。
最坏适应算法和最佳适应算法的排序正好相反,他的队列指针总是指向最大的空闲区,在进行分配时,总是从最大的空闲区开始查寻。
该算法克服了最佳适应算法留下的许多小的碎片的不足,但保留大的空闲区的可能性减小了,而且空闲区回收也和最佳适应算法相同复杂。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/401749
推荐阅读
article
docker
中运行
RabbitMq
的
启用
插件
指南_
docker
rabbitmq
插件
...
我们使用 Docker 来运行 RabbitMQ,有时需要
启用
一些
插件
,这个与正常安装的
启用
插件
的步骤会有所不同。现在,...
赞
踩
article
内存
数据库
如何发挥
内存
优势?_
内存
计算
优点
...
内存
数据库
的
计算
体系,必须充分利用
内存
的特征才能获得极致性能。从数据
计算
的角度来看,
内存
主要
优点
有:支持指针引用、支持高...
赞
踩
article
第八篇【传奇开心果系列】
Python
自动化
办公库技术点案例示例:深度解读
使用
Python
库
清洗
处理
从...
在
使用
py
PDF
4或任何其他
Python
的
PDF
解析库
提取
PDF
文件
的
文本
后,进行
清洗
处理
是非常重要的。这是因为
PDF
文...
赞
踩
article
群晖
Nas
Docker
容器
开机
自动
运行脚本_
群晖
docker
自动
启动
...
群晖
Nas
Docker
容器
开机
自动
运行脚本_
群晖
docker
自动
启动
群晖
docker
自动
启动
...
赞
踩
article
C语言初阶
--
12
数组
...
1.sizeof(
数组
名),这里的
数组
名表示整个
数组
,计算的是整个
数组
的大小,单位是字节。2.&
数组
名,这里的
数组
名表示...
赞
踩
article
解决错误Libre
SSL
SSL
_
connect
:
SSL
_
ERROR
_SYSCALL in con...
Libre
SSL
SSL
_
connect
:
SSL
_
ERROR
_SYSCALL in
connect
ion to解决方法...
赞
踩
article
Kafka
可靠性
分析_
kafka
消息
可靠性
...
消息中间件是为了应用间的解偶,削峰等,所以我们需要保证消息的可靠。那么如何保证消息的
可靠性
呢?_
kafka
消息
可靠性
ka...
赞
踩
article
React
中
State
管理
的4 个关键
解决方案
...
在
React
应用开发中,状态(state)
管理
是非常重要的一部分。在实际使用
React
的 state 时,开发者...
赞
踩
article
Linux
_
进程
的
优先级
&&
环境变量
&&
上下文
切换&&
优先级
队列...
如何设置本地变量呢?但是使用【echo】命令还可以查看到,因为echo是可以操作
环境变量
的,所用echo命令是可以操作所...
赞
踩
article
torchtext
安装
,与
pytorch
版本
匹配_torch
1
.
1
3.
1
版本
对应torchtver...
目录报错:ModuleNotFoundError: No module named ‘
torchtext
’
1
. torc...
赞
踩
article
Java
的
内存
模型_
java
对象
的创建
内存
模型...
对象
的创建1.类加载检查虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并...
赞
踩
article
python爬取豆瓣图书数据_
isrc
=”/
popo
_
data
/
data
//112/605168/a...
from lxml import etreeimport requestsheaders={ 'User-Agent':...
赞
踩
article
用
Python
实现
Word2Vec
词嵌入
模型
_
word2vec
python
...
作者:禅与计算机程序设计艺术 1.简介一、项目背景在自然语言处理中,词向量(word embedding)是一个...
赞
踩
article
31
误删
数据
后
除了
跑路,还能
怎么办
?_
31
删除
公司代码相关
数据
...
文章目录
31
|
误删
数据
后
除了
跑路,还能
怎么办
?
误删
行
误删
库 / 表延迟复制备库rm
删除
数据
小结上期问题时间
误删
行误...
赞
踩
article
SpringBoot学习_
class
that
can
be
used
to
bootstrap
a...
Spring Boot学习Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以...
赞
踩
article
算法设计-
<
e
<
em>m
<
/em>>动态
<
/e
<
em>m
<
/em>>
<
e
<
em>m
<
/em>>规划
<
/e
<
em>m
<
/em>>——
0
-
1
<
e
<
em>m
<
/em>>背包
<
/e
<
em>m
<
/em>>问题_输入 第一行两个正整数
<
e
<
em>m
<
/em>>n
<
/e
<
em>m
<
/em>>
<
e
<
em>m
<
/em>>,
<
/e
<
em>m
<
/em>>
<
em>m
<
/em>分别表示
<
e
<
em>m
<
/em>>物品
<
/e
<
em>m
<
/em>>数量和
<
e
<
em>m
<
/em>>背包
<
/e
<
em>m
<
/em>>容量。(
<
e
<
em>m
<
/em>>n
<
/e
<
em>m
<
/em>>...
算法介绍
<
e
<
em>m
<
/em>>动态
<
/e
<
em>m
<
/em>>
<
e
<
em>m
<
/em>>规划
<
/e
<
em>m
<
/em>>:
<
e
<
em>m
<
/em>>动态
<
/e
<
em>m
<
/em>>
<
e
<
em>m
<
/em>>规划
<
/e
<
em>m
<
/em>>算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个...
赞
踩
article
docker
安装
RabbitMQ
及延时
插件
安装
详细教程
_
docker
安装
rabbitmq
延迟
插件
...
文章目录简介1.
安装
运行2. 管理界面简介什么是
RabbitMQ
RabbitMQ
是实现高级消息队列协议 (AMQP)...
赞
踩
article
使用
串口
登录
树莓
派
4B终端_
树莓
派
4b
uart
登陆...
使用
电脑通过
串口
的方式连接
树莓
派
4B_
树莓
派
4b
uart
登陆
树莓
派
4b
uart
登陆 问题背景...
赞
踩
article
C语言最优
装载
问题(贪心算法)_有n
个
物体
,
第
i
个
物体
的
重量
为w
i
(w
i
为
正整数
)。选择尽量多
的
物体
...
C语言最优
装载
问题(贪心算法)_有n
个
物体
,
第
i
个
物体
的
重量
为w
i
(w
i
为
正整数
)。选择尽量多
的
物体
,
使得总
重量
不超过有...
赞
踩
article
什么是
MySQL
MVCC
的
ReadView
?_
mysql
readview
...
背景
MySQL
InnoDB RR隔离级别是否能够避免幻读?我们都知道,在
MySQL
InnoDB中,支持四种事物隔离级...
赞
踩
相关标签
后端
数据库
大数据
java
python
自动化
数据挖掘
自然语言处理
计算机视觉
docker
容器
运维
c语言
学习
git
LibreSSL
SSL_ERROR
kafka
分布式
react.js
react状态管理
react state问题
linux
服务器
pytorch