Netty - PooledByteBufAllocator
堆外内存,
就是非JVM管理的,由os管理的内存,等同于c语言里面的mallco分配的内存
故堆外内存的好处,
1. 不会有GC回收,缓解gc压力
2. 避免一次copy,发生到socket buffer的时候,如果是堆内内存需要copy到堆外一次
问题,
回收是个问题;性能没有heap好,分配和回收的效率都更低
https://www.jianshu.com/p/ce7c6f5cb5f6
https://blog.csdn.net/pentiumchen/article/details/45372625
mark
Netty的池化内存管理方案,可以选择heap或direct
大体思想,
内存大小分级,按需分配
PoolArena 内存管理池
管理一堆chunk list,一个list的chunk数是可变的
chunk由page组成,chunk大小,由pagesize和page个数决定
为了针对小内存分布,subpage,tiny是以16字节为单位,small以512为单位,个数取决于page大小
二叉树组织内存块,便于连续内存分配
一共4094个page,分11层,叶节点一个8K,到第10层,一个节点16k,9层,32k
Netty会用PoolThreadLocalCache来cache buffer,
使用netty池化内存,要注意泄露
https://juejin.im/post/5d903c97e51d457810073dda
Netty - PooledByteBufAllocator的更多相关文章
- Netty源码分析第5章(ByteBuf)---->第4节: PooledByteBufAllocator简述
Netty源码分析第五章: ByteBuf 第四节: PooledByteBufAllocator简述 上一小节简单介绍了ByteBufAllocator以及其子类UnPooledByteBufAll ...
- Spark2.3.0 报 io.netty.buffer.PooledByteBufAllocator.metric
Spark2.3.0依赖的netty-all-4.1.17.Final.jar 与 hbase1.2.0依赖的netty-all-4.0.23.Final.jar 冲突 <!-- Spark2. ...
- Netty 系列之 Netty 高性能之道
1. 背景 1.1. 惊人的性能数据 最近一个圈内朋友通过私信告诉我,通过使用 Netty4 + Thrift 压缩二进制编解码技术,他们实现了 10 W TPS(1 K 的复杂 POJO 对象)的跨 ...
- 用Netty开发中间件:高并发性能优化
用Netty开发中间件:高并发性能优化 最近在写一个后台中间件的原型,主要是做消息的分发和透传.因为要用Java实现,所以网络通信框架的第一选择当然就是Netty了,使用的是Netty 4版本.Net ...
- Netty系列之Netty高性能之道
转载自http://www.infoq.com/cn/articles/netty-high-performance 1. 背景 1.1. 惊人的性能数据 最近一个圈内朋友通过私信告诉我,通过使用Ne ...
- Netty系列之Netty百万级推送服务设计要点
1. 背景 1.1. 话题来源 最近很多从事移动互联网和物联网开发的同学给我发邮件或者微博私信我,咨询推送服务相关的问题.问题五花八门,在帮助大家答疑解惑的过程中,我也对问题进行了总结,大概可以归纳为 ...
- Netty_Netty系列之Netty百万级推送服务设计要点
1. 背景 1.1. 话题来源 最近很多从事移动互联网和物联网开发的同学给我发邮件或者微博私信我,咨询推送服务相关的问题.问题五花八门,在帮助大家答疑解惑的过程中,我也对问题进行了总结,大概可以归纳为 ...
- 【netty】Netty系列之Netty百万级推送服务设计要点
1. 背景 1.1. 话题来源 最近很多从事移动互联网和物联网开发的同学给我发邮件或者微博私信我,咨询推送服务相关的问题.问题五花八门,在帮助大家答疑解惑的过程中,我也对问题进行了总结,大概可以归纳为 ...
- Netty版本升级血泪史之线程篇
1. 背景 1.1. Netty 3.X系列版本现状 根据对Netty社区部分用户的调查,结合Netty在其它开源项目中的使用情况,我们可以看出目前Netty商用的主流版本集中在3.X和4.X上,其中 ...
随机推荐
- 4 Android可执行文件
APK是Android Package缩写,使用zip解压文件即可打开.每个APK文件中都包含一个class.dex文件(odex过的APK文件除外).class.dex文件就是Android系统Da ...
- Kafka Streams开发入门(2)
背景 上一篇我们介绍了Kafka Streams中的消息转换操作map,今天我们给出另一个经典的转换操作filter的用法.依然是结合一个具体的实例展开介绍. 演示功能说明 本篇演示filter用法, ...
- 浅析ORACLE ERP系统维护方法
笔者曾从事ORACLE ERP系统客户服务工作多年,在ERP系统维护工作中,深深体会到:ERP的系统维护工作看似平常,实则大有学问. ORACLE ERP系统是一个大型集成的软件系统,是一个企业全面共 ...
- RabbitMQ的使用Demo
rabbitmq消息队列,官网有六种,实战常用的也就如下五种. 下面开始demo讲解 大致三步:1.配置消息队列,2.生产者提供消息给队列,3.消费者监听消费队列消息 源码下载:https://pan ...
- k8s如何访问pod
1. 通过 Service 访问 Pod 我们不应该期望 Kubernetes Pod 是健壮的,而是要假设 Pod 中的容器很可能因为各种原因发生故障而死掉.Deployment 等 control ...
- sudo的使用
1. sudo:临时提权(提升权限)的工具通常,实际操作中,采用sudo的管理方式,临时的允许某个用户操作某些指令时,拥有root权限. 2. 使用方法: 配置sudo,决定,哪些用户,可以使用roo ...
- C语言printf函数转换说明表及其修饰符表
请求printf()函数打印数据的指令要与打印数据的类型匹配. 例如, 打印整数时使用%d, 打印字符是使用%c. 这些符号被称为转换说明, 他们指定了数据转换称可显示的形式. 1. ANSI C标准 ...
- django项目用higcharts统计最近七天文章点击量。
下载higcharts插件放在static文件夹下 前端引入 <script src="/static/highcharts/highcharts.js"></s ...
- httprunner学习15-运行用例命令行参数详解
前言 HttpRunner 在命令行中启动测试时,通过指定参数,可实现丰富的测试特性控制. 命令行参数CLI 使用 -h 查看相关命令行参数 hrun -h 参数名称 参数值 参数说明 -h, --h ...
- CSS Cross-Browser Inline-Block
低版本的IE,火狐 不支持 Inline-Block 属性,想要达到目的我们需要多做一些额外的工作 , 参考页面为:https://blog.mozilla.org/webdev/2009/02/2 ...