草庐IT

多图详解Linux内存分配器Slub

1、前言在Linux中,伙伴系统(buddysystem)是以页为单位管理和分配内存。但是现实的需求却以字节为单位,假如我们需要申请20Bytes,总不能分配一页吧!那岂不是严重浪费内存。那么该如何分配呢?slab分配器就应运而生了,专为小内存分配而生。slab分配器分配内存以Byte为单位。但是slab分配器并没有脱离伙伴系统,而是基于伙伴系统分配的大内存进一步细分成小内存分配。前段时间学习了下slab分配器工作原理。因为自己本身是做手机的,发现现在好像都在使用slub分配器,想想还是再研究一下slub的工作原理。之前看了代码,感觉挺多数据结构和成员的。成员的意思是什么?数据结构之间的关系是

多图详解Linux内存分配器Slub

1、前言在Linux中,伙伴系统(buddysystem)是以页为单位管理和分配内存。但是现实的需求却以字节为单位,假如我们需要申请20Bytes,总不能分配一页吧!那岂不是严重浪费内存。那么该如何分配呢?slab分配器就应运而生了,专为小内存分配而生。slab分配器分配内存以Byte为单位。但是slab分配器并没有脱离伙伴系统,而是基于伙伴系统分配的大内存进一步细分成小内存分配。前段时间学习了下slab分配器工作原理。因为自己本身是做手机的,发现现在好像都在使用slub分配器,想想还是再研究一下slub的工作原理。之前看了代码,感觉挺多数据结构和成员的。成员的意思是什么?数据结构之间的关系是

详细图解 Netty Reactor 启动全流程 | 万字长文 | 多图预警

本系列Netty源码解析文章基于4.1.56.Final版本大家第一眼看到这幅流程图,是不是脑瓜子嗡嗡的呢?大家先不要惊慌,问题不大,本文笔者的目的就是要让大家清晰的理解这幅流程图,从而深刻的理解NettyReactor的启动全流程,包括其中涉及到的各种代码设计实现细节。在上篇文章《聊聊Netty那些事儿之Reactor在Netty中的实现(创建篇)》中我们详细介绍了Netty服务端核心引擎组件主从Reactor组模型NioEventLoopGroup以及Reactor模型NioEventLoop的创建过程。最终我们得到了nettyReactor模型的运行骨架如下:现在Netty服务端程序的骨

详细图解 Netty Reactor 启动全流程 | 万字长文 | 多图预警

本系列Netty源码解析文章基于4.1.56.Final版本大家第一眼看到这幅流程图,是不是脑瓜子嗡嗡的呢?大家先不要惊慌,问题不大,本文笔者的目的就是要让大家清晰的理解这幅流程图,从而深刻的理解NettyReactor的启动全流程,包括其中涉及到的各种代码设计实现细节。在上篇文章《聊聊Netty那些事儿之Reactor在Netty中的实现(创建篇)》中我们详细介绍了Netty服务端核心引擎组件主从Reactor组模型NioEventLoopGroup以及Reactor模型NioEventLoop的创建过程。最终我们得到了nettyReactor模型的运行骨架如下:现在Netty服务端程序的骨