专栏首页开发架构二三事netty 的ByteBuf的一则问题

netty 的ByteBuf的一则问题

问:在ByteBuf这个地方的描述,内存管理是使用的操作系统层的内存管理方式,包括之前这个地方 也提到了,一部分内存是在堆外的内存,不是在gc堆中,是否可以理解为,netty主要的内存管理都是交给OS层的主内存,而不是在JVM的gc堆中?

答:1. 最终是Unsafe.allocateMemory() ,所以的确不是Java Heap中分配的。

2. Netty用Java参照jemalloc的思想 在 Unsafe.allocateMemory() 的基础上自己实现的。并非那个原版的C语言版本,而是Netty Java版本,思想是那个思想。

3.Netty中用的最多的是ByteBufAllocator实现。作为一个跨很多平台的,兼容性高的底层项目,Netty甚至会考虑到目标平台根本就没有 Unsafe.allocateMemory 功能,这个时候就是用 Java Heap了。

本文分享自微信公众号 - 开发架构二三事(gh_d6f166e26398),作者:两个小灰象

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • shiro中改造成restful无状态服务的DisabledSessionException问题分析与解决

    运行后,在调用 subject.login(token)方法时报错,报错信息如下:

    开发架构二三事
  • dubbo源码之单一长连接与客户端多线程并发请求是如何协调的

    com.alibaba.dubbo.remoting.exchange.ExchangeClient的结构:

    开发架构二三事
  • sharding-jdbc源码之读写分离和从库负载

    使用上面的配置,就可以使用shardingjdbc的RandomMasterSlaveLoadBalanceAlgorithm算法进行读写分离和从库负载了。那么...

    开发架构二三事
  • 没吃透Netty底层通讯原理,还能算得上Java老司机?

    搞了N年Java,仍有不少朋友困惑:用了很多年Dubbo,觉得自己挺厉害,跳槽面试时一问RPC,一问底层通讯,一问NIO和AIO,就一脸懵逼,到底该怎么办?

    Java团长
  • 在Android 设备上获取照片、裁剪图片、压缩图片 @TakePhoto V3.0 发布

    尊重版权,未经授权不得转载 本文出自:贾鹏辉的技术博客(http://www.devio.org) TakePhoto 简介 TakePhoto是一款用...

    CrazyCodeBoy
  • 科技进步,智能会代替人类吗

    腾点君的朋友圈除了被余文乐结婚刷屏之外,还被深圳无人驾驶公交车、1180架无人机在广州塔前freestyle、支付宝携手羊城通等刷屏。 时代在变,科技也在变。科...

    企鹅号小编
  • 连接Mysql数据库,Sqlyog和Navicat哪个好?

    1、对于同时都是收费版的Sqlyog和Navicat,大家用得都是盗版或者破解版,无所谓价格。但是如果购买的话,Sqlyog还是有很大价格优势的。 2、如果是...

    崔文远TroyCui
  • iOS文本布局探讨之一——文本布局框架TextKit浅析

            在iOS开发中,处理文本的视图控件主要有4中,UILabel,UITextField,UITextView和UIWebView。其中UILabe...

    珲少
  • Java8——行为参数化传递代码

    AlbertZhang
  • Java8实战——通过行为参数化传递代码 顶

    须臾之余

扫码关注云+社区

领取腾讯云代金券