当前位置: 首页 > news >正文

《Netty》从零开始学netty源码(三十九)之PoolSubPage的内存分配

目录

  • PoolSubPage.allocate
    • getNextAvail方法
    • toHandle方法
    • removeFromPool方法

PoolSubPage.allocate

上一篇我们介绍了PoolSubPage的简单知识,当我们需要PoolSubPage的内存时可调用allocate方法查找可分配二进制的位置,具体的源码过程如下:
在这里插入图片描述

从源码中我们可以看到具体的主要有三步:

  1. 获取可分配的段的位置
  2. 如果subPage已经分配满了则将其从pool中移除
  3. 将得到的bitmapIdx转成handle并返回

下面我们具体分析这三步。

getNextAvail方法

获取下一个可分配的段的位置
在这里插入图片描述

这里说下返回的位置int

  1. 通过上一篇我们知道bitmap数组最多为8,那么findNextAvail方法中的baseVal最大为7*2的6次方,7(111)占三个位置,左移6个位置后,int的7~9位用于记录所申请的段在bitmap数组中的第几个元素
  2. int的0~6位用于记录在long型二进制中的第几位

toHandle方法

将获得的bitmapIdx转成handle指针
在这里插入图片描述

handler其实是一个long型整数,它是一个指针,代表了段的位置的相关信息,long型有64位,每一个位代表的意义如下:

在这里插入图片描述

removeFromPool方法

在这里插入图片描述

至此,PoolSubPage的内存分配就分析到此。

相关文章:

《Netty》从零开始学netty源码(三十九)之PoolSubPage的内存分配

目录 PoolSubPage.allocategetNextAvail方法toHandle方法removeFromPool方法 PoolSubPage.allocate 上一篇我们介绍了PoolSubPage的简单知识,当我们需要PoolSubPage的内存时可调用allocate方法查找可分配二进制的位置,具体的源码过程如下: …...

【目标检测论文阅读笔记】Reducing Label Noise in Anchor-Free Object Detection

(Augmentation for small object detection) Abstract 当前的 anchor-free无锚目标检测器 将空间上落在真值框预定义中心区域内的所有特征标记为正。这种方法会在训练过程中产生 标签噪声,因为这些 正标记的特征中的一些 可能位于背景或遮挡…...

金融数字新型基础设施创新开放联合体今日成立

4月18日,“金融数字新型基础设施创新开放联合体”(以下简称:联合体)在上海成立。联合体由上海银行、复旦大学金融科技研究院、中电金信共同发起,首批成员单位汇聚产业链与供给侧的中坚力量:国泰君安证券、太…...

编程语言的发展史

编程语言处在不断的发展和变化中,从最初的机器语言发展到如今的2500种以上的高级语言,每种语言都有其特定的用途和不同的发展轨迹。编程语言并不像人类自然语言发展变化一样的缓慢而又持久,其发展是相当快速的,这主要是计算机硬件…...

巧用千寻位置GNSS软件|点测量采集技巧

点测量是测量中重要的节点,在测量工作的信息处理分析中发挥着重要作用。本期将给各位带来使用千寻位置GNSS软件采集地形点、控制点、快速点、连续点、房角点和倾斜点的操作技巧。 地形点 地形点的设置如图 5.1-9所 示,每次采集一个点,该点需要…...

DHCP原理与配置

目录 一、DHCP工作原理 1)了解DHCP服务 使用DHCP的好处 DHCP的分配方式 2)DHCP的租约过程 分为四个步骤 二、DHCP服务器的配置 1)检查并且安装dhcp有关软件包 2)查看系统的配置文件,并且利用好官方给的参考案…...

软件测试今天你被内卷了吗?

认识一个人,大专学历非计算机专业的,是前几年环境好的时候入的行,那时候软件测试的要求真的很低,他那时好像是报了个班,然后入门的,但学的都是些基础,当时的他想的也简单,反正也能拿…...

做完自动化测试,但别让不会汇报毁了你...

pytest 是一个成熟的全功能Python测试工具,可以帮助您编写更好的程序。它与 python 自带的 unittest 测试框架类似,但 pytest 使用起来更简洁和高效,并且兼容 unittest 框架。pytest 能够支持简单的单元测试和复杂的功能测试,pyte…...

企业级信息系统开发讲课笔记2.4 利用MyBatis实现条件查询

文章目录 零、本节学习目标一、查询需求二、打开MyBatisDemo项目三、对学生表实现条件查询(一)创建学生映射器配置文件(二)配置学生映射器文件(三)创建学生映射器接口(四)测试学生映…...

【天梯赛—不想坑队友系列】L2-003 月饼(java)

目录 第一题: L2-003 月饼 输入格式: 输出格式: 输入样例: 输出样例: 题目分析 题目代码 第二题:德才论 输入格式: 输出格式: 输入样例: 输出样例&#xff…...

电磁兼容(EMC)的标准与测试内容

在国际范围上,电磁兼容标准的制定已经有了70多年的发展历程,最早为了保护无线电通信和广播,国际无线电干扰特别委员会(CISPR)对各种用电设备和系统提出了相关的电磁干扰发射限值和测量方法。到了20世纪60~7…...

滑动平均算法

class Solution { public static int[] maxSlidingWindow(int[] nums, int k) { int right 0; int[] res new int[nums.length -k 1]; int index0; LinkedList<Integer> list new LinkedList<>(); // 开始构造窗口 …...

个人职业发展

职业的本质就是人和社会的交换关系。选择什么职业&#xff0c;等于选择了用什么方式和世界交换。 比如&#xff0c;快递员、小时工靠“体力”&#xff1b;大多数打工者靠“体力智力”&#xff1b;网红靠“资源、平台”&#xff1b;各领域的大神、科学家、艺术家靠“天赋”。 这…...

剑指 Offer 51. 数组中的逆序对

剑指 Offer 51. 数组中的逆序对 难度&#xff1a;hard\color{red}{hard}hard 题目描述 在数组中的两个数字&#xff0c;如果前面一个数字大于后面的数字&#xff0c;则这两个数字组成一个逆序对。输入一个数组&#xff0c;求出这个数组中的逆序对的总数。 示例 1: 输入: [7…...

数字化转型迫在眉睫!药企如何应用AI技术加速创新?

导语 | 近年来&#xff0c;随着 AI 等技术的发展应用&#xff0c;数字化、智能化日渐成为各行各业转型升级的新兴力量&#xff0c;其与医药产业的融合创新也逐渐成为当前的新趋势&#xff0c;众多医药制造企业蓄势待发&#xff0c;搭乘数字化的快车&#xff0c;驶入高速发展的快…...

电脑显示屏是怎么显示出图像的?CPU与GPU又是什么关系?

文章目录电脑显示屏是怎么显示出图像的&#xff1f;CPU与GPU又是什么关系&#xff1f;显卡作用明明有了CPU为什么还要GPU?电脑显示屏是怎么显示出图像的&#xff1f;内存与显存所有运算都交给GPU处理可以吗&#xff1f;参考&#xff1a;电脑显示屏是怎么显示出图像的&#xff…...

报名截至在即 | “泰迪杯”挑战赛最后一场赛前指导直播!

为推广我国高校数据挖掘实践教学&#xff0c;培养学生数据挖掘的应用和创新能力&#xff0c;增加校企交流合作和信息共享&#xff0c;提升我国高校的教学质量和企业的竞争能力&#xff0c;第十一届“泰迪杯”数据挖掘挑战赛&#xff08;以下简称挑战赛&#xff09;已于2023年3月…...

经验分享:如何有效应对Facebook广告数据波动问题?

Facebook广告作为一种重要的数字营销工具&#xff0c;可以帮助企业和品牌快速获得目标受众的关注和转化。然而&#xff0c;由于广告投放过程的不稳定性&#xff0c;Facebook广告数据波动问题也经常出现。 对于广告主而言&#xff0c;如何应对Facebook广告数据波动问题&#xf…...

【Python】逆向解析js代码

目录 1. 打开百度翻译网页&#xff0c;查找翻译结果的网络资源包 2. 获取翻译结果网络资源包的url、请求头、请求体&#xff0c;解析json文件数据 3. 观察请求体字段&#xff0c;发现 query 字段便是我们输入的需要翻译的值 4. ctrl F 快捷键搜索sign值的网络资源包&#x…...

websorm启动vue项目修改内容后自动运行内存溢出

手动启动vue项目正常运行&#xff0c;修改部分内容保存后会自动重新run一下&#xff0c; 这个时候就报错内存溢出&#xff0c;然后很悲伤的需要再手动重启一下。 &#xff08;在网上查了好多方法就不单独加链接了&#xff09; 前3个方法都试过对于我的项目无效&#xff0c;第4…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣&#xff08;LeetCode&#xff09; ​遍历字符串​&#xff1a;通过外层循环逐一检查每个字符。​遇到 ? 时处理​&#xff1a; 内层循环遍历小写字母&#xff08;a 到 z&#xff09;。对每个字母检查是否满足&#xff1a; ​与…...