堆外内存,

就是非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,

参考https://kkewwei.github.io/elasticsearch_learning/2018/07/14/Netty-PoolThreadCache%E6%BA%90%E7%A0%81%E6%8E%A2%E7%A9%B6/

使用netty池化内存,要注意泄露

https://juejin.im/post/5d903c97e51d457810073dda

最新文章

  1. python征程1.3(初识python)
  2. IOS UIView 01-View开始深入 绘制像素到屏幕上
  3. PHP旧系统基于命名空间重构经验
  4. java多线程系类:基础篇:10生产者消费者的问题
  5. 关于servlet的filter
  6. Android的开发环境的发展演变
  7. 纵观minecraft 游戏作者的世界观
  8. ZOJ 1914 Arctic Network (POJ 2349) MST
  9. Android(java)学习笔记248:ContentProvider使用之虚拟短信
  10. 转:更改 centos yum 源
  11. nodejs教程
  12. Apache HTTP Server 与 Tomcat 的三种连接方式介绍(转)
  13. AndroidStudio下gradle的入门介绍与使用
  14. 数据库连接问题之:Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!
  15. 理解 docker 容器中的 uid 和 gid
  16. linux安装OpenCV以及windows安装numpy、cv2等python2.7模块
  17. Metasploit Framework(6)客户端渗透(上)
  18. 【BZOJ4919】[Lydsy六月月赛]大根堆
  19. Leetcode 86
  20. js代码上的优化

热门文章

  1. sendMessage 与 obtainMessage (sendToTarget)比较
  2. css animation动画使用
  3. 号称全站最直观解释-smv核函数-是干啥
  4. php + h5 实现socket推送技术
  5. kuangbin专题专题四 Silver Cow Party POJ - 3268
  6. Redis持久化 - RDB和AOF
  7. Pycharm中设置默认头注释
  8. Linux创建目录和文件的默认权限设置
  9. Beta冲刺(3/7)——2019.5.24
  10. 关于Classloader(学习笔记)