【技术】《Netty》从零开始学netty源码(三十七)之ByteBufAllocator

news2024/11/20 0:40:39

ByteBufAllocator

在channel的配置类中有一个属性allocator,我们知道netty有自己的缓冲区,可以使用该缓存分配器来分配所需的缓存。在config类中默认使用ByteBufAllocator.DEFAULT,它的初始化过程如下:

在这里插入图片描述

在开始分析PooledByteBufAllocator的构造函数之前先看下它的类结构图:

在这里插入图片描述

接下来看下它的属性:

在这里插入图片描述

它的功能是分配内存,根据所调用的方法来分配所需类型的缓存,可以是堆内缓存,可以是直接内存缓存,也可以是复合类型:
在这里插入图片描述

ByteBufAllocator的属性中看到了两个陌生类:PoolArenaPoolThreadLocalCache,在具体分析ByteBufAllocator分配内存的方法之前需要先了解这两个类,在接下来的文章中会先分析这两个类。

每天坚持一点点,每天进步一点点。

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

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

相关文章

基于 QT 开发 FLIPPED :简易且漂亮的跨平台截图贴图软件

文章目录FLIPPED运行预览视频演示截图演示特性快捷键架构思路思路细节打磨实际问题解决方案编译依赖WindowsMacOS / Linux运行效果作者贡献者反馈下载安装包系列地址简 述: 新开发的一款跨平台的截图贴图的软件作品, FLIPPED:Simple and beautiful cross…

基于Web的智慧LNG加气站2D组态控制系统

LNG(Liquefied Natural Gas),即液化天然气的英文缩写。LNG是通过在常压下气态的天然气,经过预处理,脱除重烃、硫化物、二氧化碳和水等杂质后,冷却至-162℃,使之凝结成液体。LNG无色无毒无味,是天然气经净化…

算法分析与设计—分治法

分治者,分而治之也。概述分治法也称为分解法、分治策略等。分治法算法思想如下:(1) 将一个问题划分为同一类型的若干子问题,子问题最好规模相同。(2) 对这些子问题求解(一般使用递归方法,但在问题规模足够小时&#xf…

fileinclude(通过cookie赋值的文件包含)

打开链接,提示flag在flag.php里 内容里还有一个路径/var/www/html/index.php,猜测flag.php应该也是在这个路径下 Ctrlu查看网页源码 代码中发现 include($lan.".php"); 可知这里存在文件包 且包含与lan的值有关 由代码 $lan $_COOKIE[lang…

安装kafka及一些命令

1,先把压缩包放到/opt/install目录下 2,解压,更名 解压:[rootsiwen install]# tar -zxf kafka_2.12-2.8.0.tgz -C ../soft 更名:[rootsiwen soft]# mv kafka_2.12-2.8.0/ kafka212 3,配置文件 cd opt/so…

讯飞 语音唤醒 Android SDK

语音唤醒 Android SDK 文档 | 讯飞开放平台文档中心https://www.xfyun.cn/doc/asr/awaken/Android-SDK.html前往控制台,设置唤醒关键词: 控制台-讯飞开放平台https://console.xfyun.cn/services/awaken注意,可以对唤醒词进行评估&#xff0c…

游戏开发需要学什么

游戏开发可以说是当下最热门的专业了,不过这一行业虽然很火热,但也有一定的竞争压力。这个行业需要大量的人才,而且游戏开发这个行业目前还处于初级阶段,所以发展空间还是很大的。现在有很多人都想进入这个行业,但却不…

ESP32-IDF开发笔记 | 03 - 使用SPI外设驱动ST7789 SPILCD

一、硬件说明 ST7789屏幕引脚ESP32C3F引脚3V33V3GNDGNDMOSIIO_07CLKIO_06DCIO_08RSTIO_04BLIO_05 二、ESP32的SPI外设 1. 外设功能 ESP32-C3具有三个SPI接口(SPI0、SPI1和SPI2)。 SPI0和SPI1只能配置为在SPI内存模式下操作,而SPI2可以配置为在SPI内存和通用SPI模…

2023年MathorCup数学建模C题电商物流网络包裹应急调运与结构优化问题解题全过程

2023年第十三届MathorCup高校数学建模挑战赛 C题 电商物流网络包裹应急调运与结构优化问题 原题再现: 电商物流网络由物流场地(接货仓、分拣中心、营业部等)和物流场地之间的运输线路组成,如图 1 所示。受节假日和“双十一”、“…

手机应用开发之如何利用蓝牙与HC-05通信?

文章目录0、引言1、创建工程2、准备真机调试3、应用布局4、代码编写5、功能演示0、引言 本文通过AndroidStudio开发手机应用软件,实现蓝牙连接功能,并且能发送消息给HC-05蓝牙,也能接收HC-05回传的消息。本文在【AndroidStudio如何进行手机应…

C++基础学习笔记(八)——提高编程PART3

参考链接:https://www.bilibili.com/video/BV1et411b73Z/p237&spm_id_frompageDriver&vd_sourceb4d9cee68649c8adcb1e266f7147cd5c 4 STL- 函数对象 4.1 函数对象 4.1.1 函数对象概念 概念: 重载函数调用操作符的类,其对象常称为…

STL的并行遍历:for_each(依赖TBB)和omp parallel

文章目录OMP parallelOpenMP安装OpenMP示例1) OMP Hello World2) OMP for 并行3. OMP 官方示例4) map使用OMP遍历TBB的安装和使用Gcc9的安装TBB 安装TBB使用在图像处理等应用中,我们经常需要对矩阵,大数量STL对象进行遍历操作,因此并行化对算…

R语言与作物模型(以DSSAT模型为例)融合应用

随着基于过程的作物生长模型(Process-based Crop Growth Simulation Model)的发展,R语言在作物生长模型和数据分析、挖掘和可视化中发挥着越来越重要的作用。想要成为一名优秀的作物模型使用者与科研团队不可或缺的人才,除了掌握对…

MySQL存储过程 if、case、while、loop、游标、变量、条件处理程序

存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程可以简化很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 存储过程思想上很简单,就是数据库 SQL 语言层面的代…

barret reduction原理详解及硬件优化

背景介绍 约减算法,通常应用在硬件领域,因为模运算mod是一个除法运算,在硬件中实现速度会比乘法慢的多,并且还会占用大量资源,因此需要想办法用乘法及其它简单运算来替代模运算。模约减算法可以利用乘法、加法和移位等…

怎么评价2023年第十三届MathorCup高校数学建模挑战赛?

文章目录赛题思路选题建议1 竞赛信息2 竞赛时间3 组织机构4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题赛题思路 (赛题出来以后第一时间在CSDN分享) 选题建议 首先要注意,A、B题为研究生组可选题目,A…

还在用 if else 做参数校验?快来学习高级参数校验吧

文章目录一、前言二、自定义校验2.1 定义 GenderArrayValuable 接口2.2 定义性别 GenderEnum 枚举类2.3 自定义 GenderCheck 自定义约束注解2.4 自定义约束的校验器 GenderValidator2.5 定义 UserUpdateGenderDTO2.6 定义一个对外访问接口2.7 请求接口 进行验证三、总结一、前言…

从C出发 17 --- 函数调用

从表面上来看,函数就是一个代码片段,只不过说这个代码片段可以反复利用,通过调用的方式反复利用,通过函数调用,我们可以将参数传到函数所对应的代码片段里面,然后代码片段去处理这些参数,得到一…

Linux下Samba服务器的安装与配置(简单实用)

为了可以实现Linux与windows之间实现文件的共享,方便文件可以直接修改,而不是像以前需要拷贝文件再进行修改,samba的诞生是为了实现现在的这些需求。我们知道Linux之间可以使用NFS服务器来实现文件的共享,samba的诞生就是为了使wi…

Spring Cloud Security

Spring Cloud Security Spring Cloud Security用于构建微服务的安全应用程序和服务,它可以轻松实现微服务系统架构下的统一安全认证与授权。 Spring Cloud Security 有以下组件。 spring-cloud-security:为Zuul、Feign、Oauth 2.0 的Resource Serve…