《Netty》从零开始学netty源码(三十八)之PoolSubPage

news2025/2/28 20:19:59

PoolSubPage

上一节中我们提到了PooledByteBufAllocator类,先看下netty中有关内存的类关系:

在这里插入图片描述

从图中可以看到PoolSubPage为最小单位,所以我们先从最小的开始分析,先看下它的属性值:

在这里插入图片描述

为了更好的理解这些属性的意义,我们举个例子。PoolSubPage分配的最大内存为8KB,即8192B

  1. 假设我们想要得到一个runSize为8192的PoolSubPage
  2. PoolSubPage每段的大小最小为16B,假设我们取每段的大小为16B,即elemSize为16B
  3. 那么段的总数量为runSize/elemSize,即8192/16=512,即maxNumElems为512,PoolSubPage被分成512个段
  4. PoolSubPage中我们使用long[]数组来记录段的内存使用状况,long类型的存储位数最大为64B,每一位用0表示空闲状态,1表示被占用。那么我们需要512/64个long来存储,即8,所以bitmapLength为8,bitmap为long[8].
  5. 假设我们使用了1~3个段的内存,那么PoolSubPage的结构图如下:

在这里插入图片描述

我们看下PoolSubPage的构造函数:

在这里插入图片描述

至此我们简单的分析了PoolSubPage,后文继续分析它的重要方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/426582.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

表情包MD编辑器简单使用

🌷1 表情包 ⭐️(1)常规表情图标 😀 😁 😂 😃 😄 😅 😆 😉 😊 😋 😎 😍 😘 &#x1…

(Deep Learning)交叉验证(Cross Validation)

交叉验证(Cross Validation) 交叉验证(Cross Validation)是一种评估模型泛化性能的统计学方法,它比单次划分训练集和测试集的方法更加稳定、全面。 交叉验证不但可以解决数据集中数据量不够大的问题,也可以…

CSS中flex属性的的使用以及应用场景有哪些

文章目录一. flex属性?(虚假的) --- 这里主要是回顾1.1 flex-grow1.2 flex-shrink1.3 flex-basis二. flex属性 ! (真正的!!!)三. flex一些常见的值, 以及使用场景3.1 flex:initial 使用场景3.2 flex:0 和 flex:node 适用场景3.3 flex:1 和 flex:auto3.4 总结一. flex属性?(虚…

54 openEuler搭建Mariadb数据库服务器-Mariadb介绍

文章目录54 openEuler搭建Mariadb数据库服务器-Mariadb介绍54.1 MariaDB的架构54.2 MariaDB的存储引擎54 openEuler搭建Mariadb数据库服务器-Mariadb介绍 MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。MariaDB的目的…

零售数据分析操作篇14:利用内存计算做销售筛选分析

各位数据的朋友,大家好,我是老周道数据,和你一起,用常人思维数据分析,通过数据讲故事。 上一讲讲了图表间联动的应用场景,即当我们点击某个图表时,会影响其他图表一起变化,而变化背…

Vue3 Element-plus el-menu无限级菜单组件封装

对于element中提供给我们的el-menu组件最多可以实现三层嵌套,如果多一层数据只能自己通过变量去加一层,如果加了两层、三层这种往往是行不通的,所以只能进行封装 效果图一、定义数据 MenuData.ts export default [{id: "1",name:…

spring boot 访问HTML

HTML整合spring boot简介默认文件路径访问自定义文件路径访问或通过Controller控制器层跳转访问简介 SpringBoot默认的页面映射路径(即模板文件存放的位置)为“classpath:/templates/*.html”。静态文件路径为“classpath:/static/”,其中可…

三菱FX3U PLC计米轮功能块(完整ST代码)

计米轮功能块(wheel_FB)详细计米、测速原理请参看下面的博客: PLC高速脉冲输入计米轮模块(编码器测速/计米详细讲解)_RXXW_Dor的博客-CSDN博客线缆行业单绞机PLC控制算法详细解读可以参看下面的文章链接:线缆行业单绞机控制算法(详细图解+代码)_RXXW_Dor的博客-CSDN博客在…

大佬入局AI,职场人有新机会了?

卸任搜狗CEO一年半后,王小川宣布在AI大模型领域创业,与前搜狗COO茹立云联合成立人工智能公司百川智能,打造中国版的OpenAI,并对媒体表示:“追上ChatGPT水平,我觉得今年内可能就能够实现,但对于G…

第六天 CUDA内存管理

操作内存分配和数据复制过程概述 在gpu上开辟一块空间,并把地址记录在mem_device上在cpu上开辟一块空间,并把地址记录在mem_host上,并修改了该地址所指区域的第二个值把mem_host所指区域的数据都复制到mem_device的所指区域在cpu上开辟一块空…

面试代码——排序算法【建议收藏】

最近家里小朋友准备计算机类的研究生复试,可能会考到常见的排序算法,于是帮助整理一波,顺带复习下相关知识,考验下自己的编码能力; 关于排序算法,网上关于排序算法的帖子和代码也比较多,有的帖…

万字长文介绍R package “vegan”——入门学习与重复文献数据

vegan介绍与入门 vegan是一个用于群落生态学(community ecology)分析的包,可以进行排序、多样性和差异性分析(ordination, diversity and dissimilarity)。 vegan包含了多样性分析、排序方法和差异性分析的工具。 示…

L2-043 龙龙送外卖

L2-043 龙龙送外卖 题目描述: 给你n个点,m次询问,n个点构成一棵树 给出n个点,每个点的父节点 你现在在根结点,对于每次询问i,你都要回答,从根结点出发,至少经历1到i次询问的每个点1…

构建用户画像完整版

01 画像平台产品架构 上图是基于快看数据中台画像平台产品的理解和定位整理出来的产品架构。 画像平台首先是服务于业务的,运营可以基于画像平台对单个用户或者人群包做画像的洞察,平台服务的业务应用层包含: (1)个…

【C++初阶】(入门)命名空间

在C/C中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字…

【文章学习系列之模型】FEDformer

本章内容文章概况模型流程主要结构Frequency Enhanced Decomposition Architecture(频率增强分解结构)Fourier enhanced blocks and Wavelet enhanced blocks(傅里叶增强模块和小波增强模块)Fourier Enhanced Structure&#xff0…

基于Segment anything的实例分割半自动标注

介绍 使用Meta AI的SAM,并添加了一个基本界面来标记图像,并保存COCO格式的掩码。 源码 https://github.com/anuragxel/salt 安装 安装SAM;创建conda虚拟环境,使用conda env create -f environment.yaml;安装coco-viewer来快速可视化标注结果。使用方法 1、将图片放入到…

WSL下的Kafka开发容器:Docker搭建、API、整合

背景介绍 Kafka是一个分布式流处理平台,可以处理大规模数据流并支持实时数据流的处理。 本文介绍了如何在WSL下使用Docker搭建Kafka容器,并使用Python的kafka-python库和FastAPI框架实现了一个简单的API。同时,还将该服务整合到一个整体的d…

ssm异常处理

ssm异常处理 类上和方法上都要有注解: 类上的注解: 异常处理用到的注解,里面包含了其他的一些必须的注解,详解看下图 方法上的注解: 上面的要懂打配合 现在创建一个处理异常的工具类,加上前面提到的注…

CSRF与SSRF比较

CSRF与SSRF比较 参考:简述CSRF、SSRF的区别 CSRF CSRF,全名 Cross-site requestforgery,也就是 跨站请求伪造。XSS是跨站脚本攻击。与XSS比较,XSS攻击是跨站脚本攻击,CSRF是跨站请求伪造,也就是说CSRF攻…