![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深入理解ByteBuf
文章平均质量分 76
dying 搁浅
这个作者很懒,什么都没留下…
展开
-
【深入理解 ByteBuf 之三 接口&类拆解】1. ObjectPool 接口设计剖析
想了一下,我决定还是做更细化的拆解,也看了很多源码剖析的文章,以及我之前也写过,一个令人难受的点就是通篇的代码解释,通篇没什么头绪,我看着没头绪,感觉写的也没什么头绪,就是在硬看硬写,看完之后仍然不知云云,不得要领,无法复刻,写完之后的感觉也是。在步入第三部分 接口&类的解析,我决定对每个一个接口&类的定义实现都进行拆解和剖析聊一聊这样设计的好处和原因,并拆分为小块进行整理,以小见大。最终应该会整理出一版最终的设计脉络。原创 2024-01-10 11:32:02 · 1048 阅读 · 0 评论 -
【深入理解 ByteBuf 之二】对象池设计模式概述
对象池设计模式并不在经典的 23 种设计模式之中,先说我认为实际上设计模式,这四个词听着唬人,其实本质上就是一种设计的想法思路罢了,然后把经常会用到的一些思路整理出来就成了经典的设计模式思路,重点其实在于运用。原创 2024-01-08 17:13:14 · 773 阅读 · 0 评论 -
【深入理解 ByteBuf 之一】 release() 的必要性
那其实能看到明显的堆内存浮动是因为我代码中分配 ByteBuf 的时候同时 new 了一个 byte 数组,去掉这行代码同样可以观察到堆外内存一直居高不下,堆内存没有影响,只有一次明显的 GC 活动。请求分配并且不释放时,堆内存增长,经过 GC 后呈现尖刺状,最后趋近平稳是线程分配已经报错,无法进行分配了,可以看到整个 Java 程序占用 4G 多而且一直不会释放。如果调用的是分配并正确释放方法,可以观察到内存的使用是稳定的,GC 来自于堆内引用的申请和释放。但是整个程序堆外内存已经无法分配了。原创 2024-01-05 17:42:19 · 1321 阅读 · 0 评论