Netty Jemalloc4算法-核心数据结构图示

news/2025/3/14 21:34:45/
Netty 从4.1.52版本开始,其内存分配算法,从jemalloc3 切换到了 jemalloc4。本文给出该算法涉及的核心数据结构图示:

Jemalloc4算法关键数据结构图示

想要看懂上图, 要点如下:

1. 小于等于16777216字节的空间,从chunk(一个16M的字节数组)中分配,chunk是一个包含2048个page的run。

2. 每次分配, 会从chunk切割得到一个能容纳请求大小且最接近请求大小的run。

3. run是一个或多个page的集合,一个page是8Kb。

4. 空闲的run,其句柄信息会被放入优先队列数组runsAvail的槽位中。 比如:

  1. handle1,handle2分别代表的run1和run2,长度是2个page,会被放到runsAvail第1个槽位
  2. handle3代表的run3,长度是4个page,会被放到runsAvail第3个槽位
  3. 最小的run包含一个page,索引是0,存储在runsAvail[0],最大的run是2048个page,存储在runsAvail[39]。

5. 可以根据handle计算run在chunk中的物理位置,比如起始偏移量和截止偏移量。 起始、截至偏移量会被放入runsAvailMap代表的映射结构中,value是handle本身

6. handle是一个64bit的长整型数字。该数字编码了run的起始位置和page的数量。详解结构如下图所示:

handle的结构


http://www.ppmy.cn/news/46803.html

相关文章

Python第三方库安装

看见更大的Python世界 Python社区PyPI The Python Package Index PyPI: Python Package Index PSF维护的展示全球Python计算生态的主站 学会检索并利用PyPI,找到合适的第三方库开发程序 实例:开发与区块链相关的程序 第1步:在pypi.org…

【电动汽车充电站有序充电调度的分散式优化】基于蒙特卡诺和拉格朗日的电动汽车优化调度(分时电价调度)(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

原创文章生成器在线版-ai写作生成器

随着人工智能技术的迅猛发展,越来越多的人开始意识到,利用AI可以实现许多以前不可能想象的事情。其中,一种最能体现人工智能技术优势的应用就是“ai原创文章生成器”。它可以为营销从业者提供一种全新的营销推广方式。 那么,什么是…

CAD 二次开发-Handle

在 CAD 二次开发中,Handle 是每个 CAD 实体的唯一标识符,类似于一个 ID。它是一个 long 类型的整数,可以用于标识和引用 CAD 实体,如图形对象、块、图层、实体等。 使用 Handle 可以方便地操作 CAD 实体,例如&#xf…

Java8 判空新写法(Optional方式)

1 引言 在文章的开头,先说下NPE问题,NPE问题就是,我们在开发中经常碰到的NullPointerException.假设我们有两个类,他们的UML类图如下图所示 在这种情况下,有如下代码 user.getAddress().getProvince();这种写法&…

Lumen6 /laravel 框架路由请求实现token验证

版本 Lumen6.0 中文文档:https://learnku.com/docs/lumen/5.7/cache/2411 实现功能效果 1、使用缓存存储用户token 2、从请求头head 中获取用户token 3、返回指定的认证失败结构体 4、对指定的接口路由做身份验证 第一步:解除注释 注意&#xff1…

Java的7大好处

Java 的 7 大优势 当 Sun Microsystems 在 1995 年发布 Java 语言环境白皮书时,他们列出了 Java 将给软件开发领域带来的以下 7 大好处: Java 简单而熟悉。Java是面向对象的。Java 是体系结构中立的。Java 健壮且安全。Java是多线程的。Java具有高性能。…

哈希表题目:在系统中查找重复文件

文章目录 题目标题和出处难度题目描述要求示例数据范围进阶 解法思路和算法代码复杂度分析 进阶问题答案后记 题目 标题和出处 标题:在系统中查找重复文件 出处:609. 在系统中查找重复文件 难度 6 级 题目描述 要求 给定一个目录信息列表 paths…