分箱式内存管理:MySQL Crash Course中的ptmalloc解析
需积分: 39 148 浏览量
更新于2024-08-06
收藏 1.81MB PDF 举报
"分箱式内存管理是Glibc中的ptmalloc内存管理器的一种优化策略,主要应用于MySQL等系统,以高效地管理和分配内存。在ptmalloc中,内存被分为fast bins、unsorted bin、small bins和large bins四类。这种管理方式能够减少内存碎片并提高内存分配速度。
5.2 分箱式内存管理
分箱式内存管理的核心是将不同大小的内存块分门别类地存储,以便快速找到适合的内存块进行分配。fast bins用于存储小于64字节的小内存块,是小内存块的高速缓存。当内存块被回收时,会优先放入fast bins,再次分配时直接从中取出,提高了效率。unsorted bin只有一个,所有回收的chunk首先放入此bin,分配时会检查unsorted bin,如果有合适的chunk则直接使用,否则将unsorted bin的内容归类到small bins或large bins。
5.2.1 Small bins
small bins专门用于管理固定大小的小chunk,每个bin对应一个特定的chunk大小。在32位系统上,chunk大小以8字节递增,最大为504字节,最小为16字节,共有62个bin。而在64位系统上,chunk大小以16字节递增,最大为1008字节,最小为32字节,同样也是62个bin。每个small bin内的chunk大小相同,分配内存时直接在对应的bin中寻找,避免了碎片并提升了效率。
5.2.2 Large bins
large bins用于存储大于512字节或1024字节的chunk,它们按照大小顺序排列,使用双向链表结构,分配时遵循最近匹配原则,以减少内存浪费。
5.2.3 Unsorted bin
unsorted bin作为临时存储,回收的chunk会先放入其中,分配内存时首先检查,如果没有合适的chunk,再将其内容分到small bins或large bins。
5.2.4 Fast bins
fast bins是小内存块的高速缓存,回收的小内存块会被放入fast bins,分配时优先考虑,以加速内存分配过程。
通过这种分箱式的内存管理,ptmalloc能够更有效地管理内存,提供高效的内存分配和回收服务,减少了内存碎片,优化了程序性能。在大型系统如MySQL中,这样的内存管理策略至关重要,因为它直接影响到数据库的运行效率和稳定性。"
2020-05-18 上传
1368 浏览量
5180 浏览量
1409 浏览量
6853 浏览量
1009 浏览量
柯必Da
- 粉丝: 42
- 资源: 3771
最新资源
- 可减小系统尺寸并降低成本的电源参考设计-电路方案
- 形态学处理图像分割hw5.zip
- Adafruit_PCA9685-1.0.1-py2-none-any.whl.zip
- 深入解析数据存储技术原理及发展演进分布式存储技术.zip
- 7628N说明书 串口以太网应用指导 HLK-7628N硬件手册
- AbaqusReader.jl 是对 ABAQUS FEM 模型的解析。它能够准确地解析几何,包括表面集、节点集以及有限元计算中
- Individual-travelling:这是一个旅游网站
- zhanwenchen.github.io
- 钢结构施工组织设计-3清华大学综合体育中心工程
- 小程序源码 PopupWindow模仿UC底部Menu.rar
- Adafruit_BNO055-1.0.2-py2-none-any.whl.zip
- Omics_Data_Analysis-Case_Study_0-Introduction_to_BioC
- 特种标识供应商企业网站html模板.zip
- 通过接口api暴露的方式实现MD5加解密工具
- 5143.67平米,六层框架办公楼(含计算书、建筑、结构图).rar
- flux-shop-playground:通量商店游乐场