当前位置:网站首页>内存池原理一(基于整块)
内存池原理一(基于整块)
2022-06-10 17:15:00 【QQ851301776】
创作人QQ:851301776,邮箱:[email protected],欢迎大家一起技术交流,本博客主要是自己学习的心得体会,只为每天进步一点点!
个人座右铭:
1.没有横空出世,只要厚积一定发。
2.你可以学历不高,你可以不上学,但你不能不学习
一、内存池设计思路
1.内存池解决的问题(malloc/free)
(1)不利于内存管理
(2)内存碎片厉害
(3)程序容易出现内存泄漏,最终产生内存溢出
2.内存池设计的做法(4K)
(1)伙伴算法
分配:把4K,按照2的n次方的方式,从0开始分配成:1/2/4/8/16/32/64/128/256/512/1K/2K这些块,核心思维:把整块变成散块
使用:比如需要129个字节:就会把256这个块再次拆分成:128/64/32/16/8/4/2/1,
合并:把相邻相同大小的两块合并起来,和下一块放到一起。需要第一个条件两块相邻,第二个条件两块必须一样大。
释放:把小块变大块,统一释放
(2)slab
这里不解释,可以查看nginx使用slab的内存池部分(slab核心是把:比如一个4K的页,全部变成4/8/16(数字只是举例), 这种小块)
边栏推荐
猜你喜欢

Gateway服务网关

Online communication skill network: a sparse model for solving multi task and multi-modal problems (Qingyuan talk, issue 19, tangduyu)

com.netflix.client.ClientException: Load balancer does not have available server for client: userser

Abbexa 无细胞 DNA 试剂盒说明书

最新好文 | 基于因果推断的可解释对抗防御

Abbexa AML1 DNA 结合 ELISA 试剂盒说明书

mmdetection之dataloader构建

单片机底层通信协议① —— 同步和异步、并行和串行、全双工和半双工以及单工、电平信号和差分信号

pands pd.DataFrame()函数详细解析

mmcv之Registry类解读
随机推荐
蓝桥杯_挑选子串_组合数学_乘法原理_ / 尺取法
模板_计算组合数
Nacos配置管理
com. netflix. client. ClientException: Load balancer does not have available server for client: userser
matplotlib plt. Specific usage of text() - labeling points in a drawing
Importerror: libgl. so. 1: cannot open shared object file: no such file or directory
js手机端复制文本到剪切板代码
LeetCode 255. Verifying preorder traversal sequence binary search tree*
Abbexa 1,3-二棕榈素 CLIA 试剂盒解决方案
Talk about message oriented middleware (1) and AMQP
CUDA realizes efficient search - failed audit?
基于业务沉淀组件 => manage-table
Snabbdom virtual DOM (I)
开源项目 PM 浅谈如何设计官网
如何运行plink软件--三种方法
掌握高性能计算前,我们先了解一下它的历史
Jouer avec la classe de fonctions de pytorch
高数_第6章无穷级数__绝对收敛_条件收敛
mmcv之Config类介绍
Swin_Transformer源码解读