蹭蹭加油站 潜水
  • 2发帖数
  • 2主题数
  • 0关注数
  • 0粉丝
开启左侧

10、Netty自适应缓冲区分配策略源码分析

[复制链接]
蹭蹭加油站 发表于 2021-8-24 21:59:54 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
Netty底层的策略


  • Netty底层提供了扩容,涉及数据拷贝,可预测的缓冲区处理
  • C语言的分配内存由Malloc实现
AdaptiveRecvByteBufAllocator


  • AdaptiveRecvByteBufAllocator根据返回的大小会自动增或减可预测的Buffer,基于之前的读与写的对比的布局的调节大小

                               
登录/注册后可看大图
AdaptiveRecvByteBufAllocator关系图

  • 该RecvByteBufAllocator在反馈时自动增长和减少预测的缓冲区大小。
    如果前面的读操作完全填满了分配的缓冲区,那么它将徐徐增长预期的可读字节数。如果read操作不能连续两次填充分配的缓冲区的肯定数量,则会徐徐减少预期的可读字节数。否则,它将不绝返回相同的预测。

  • RecvByteBufAllocator源码备注
//静态代码块的作用是对SIZE_TABLE数组填写1~38的坐标的值是16,32,48....不绝到65536    //自动减少大概增长的幅度就是来自于这个数组。具体逻辑在HandleImpl对的record方法。    static {        List sizeTable = new ArrayList();        for (int i = 16; i < 512; i += 16) {            sizeTable.add(i);//1~16的设置是16到(512-16)        }        for (int i = 512; i > 0; i
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

猜你喜欢
在线客服邮箱
wxcy#wkgb.net

邮箱地址#换为@

Powered by 创意电子 ©2018-现在 专注资源实战分享源码下载站联盟商城