摘要: Netty 如何自动探测内存泄露的发生 本文基于 Netty 4.1.112.Final 版本进行讨论 本文是 Netty 内存管理系列的最后一篇文章,在第一篇文章 《聊一聊 Netty 数据搬运工 ByteBuf 体系的设计与实现》 中,笔者以 UnpooledByteBuf 为例,从整个内存管理的外围对 ByteBuf 的整个设计体系 阅读全文
posted @ 2024-11-07 10:10 bin的技术小屋 阅读(876) 评论(0) 推荐(4) 编辑
摘要: 谈一谈 Netty 的内存管理 —— 且看 Netty 如何实现 Java 版的 Jemalloc 本文基于 Netty 4.1.112.Final 版本进行讨论 在之前的 Netty 系列中,笔者是以 4.1.56.Final 版本为基础和大家讨论的,那么从本文开始,笔者将用最新版本 4.1.112.Final 对 Netty 的相关设计展开解析,之所以这么做的原因是 Netty 的内存池设计一 阅读全文
posted @ 2024-10-25 10:45 bin的技术小屋 阅读(1238) 评论(1) 推荐(8) 编辑
摘要: 小小的引用计数,大大的性能考究 本文基于 Netty 4.1.56.Final 版本进行讨论 在上篇文章《聊一聊 Netty 数据搬运工 ByteBuf 体系的设计与实现》 中,笔者详细地为大家介绍了 ByteBuf 整个体系的设计,其中笔者觉得 Netty 对于引用计数的设计非常精彩,因此将这部分设计内容专门独立出来。 Nett 阅读全文
posted @ 2024-08-20 12:24 bin的技术小屋 阅读(1750) 评论(4) 推荐(5) 编辑
摘要: 聊一聊 Netty 数据搬运工 ByteBuf 体系的设计与实现 本文基于 Netty 4.1.56.Final 版本进行讨论 时光芿苒,岁月如梭,好久没有给大家更新 Netty 相关的文章了,在断更 Netty 的这段日子里,笔者一直在持续更新 Linux 内存管理相关的文章 ,目前为止,算是将 Linux 内存管理子系统相关的主干源码较为完整的给大家呈现了出来 阅读全文
posted @ 2024-08-14 10:21 bin的技术小屋 阅读(1595) 评论(6) 推荐(11) 编辑
摘要: PhantomReference 和 WeakReference 究竟有何不同 本文基于 OpenJDK17 进行讨论,垃圾回收器为 ZGC。 提示: 为了方便大家索引,特将在上篇文章 《以 ZGC 为例,谈一谈 JVM 是如何实现 Reference 语义的》 中讨论的众多主题独立出来。 PhantomReference 和 WeakReference 如果仅仅从概念上来说其 阅读全文
posted @ 2024-06-19 21:50 bin的技术小屋 阅读(166) 评论(0) 推荐(1) 编辑
摘要: FinalReference 如何使 GC 过程变得拖拖拉拉 本文基于 OpenJDK17 进行讨论,垃圾回收器为 ZGC。 提示: 为了方便大家索引,特将在上篇文章 《以 ZGC 为例,谈一谈 JVM 是如何实现 Reference 语义的》 中讨论的众多主题独立出来。 FinalReference 对于我们来说是一种比较陌生的 Reference 类型,因 阅读全文
posted @ 2024-06-17 20:57 bin的技术小屋 阅读(1014) 评论(1) 推荐(1) 编辑
摘要: SoftReference 到底在什么时候被回收 ? 如何量化内存不足 ? 本文基于 OpenJDK17 进行讨论,垃圾回收器为 ZGC。 提示: 为了方便大家索引,特将在上篇文章 《以 ZGC 为例,谈一谈 JVM 是如何实现 Reference 语义的》 中讨论的众多主题独立出来。 大家在网上或者在其他讲解 JVM 的书籍中多多少少会看到这样一段关于 SoftRefer 阅读全文
posted @ 2024-06-15 19:34 bin的技术小屋 阅读(200) 评论(0) 推荐(1) 编辑
摘要: 以 ZGC 为例,谈一谈 JVM 是如何实现 Reference 语义的 本文基于 OpenJDK17 进行讨论 1. Reference 相关概念及其应用场景总览 Reference(引用)是 JVM 中非常核心且重要的一个概念,垃圾回收器判断一个对象存活与否都是围绕着这个 Reference 来的,JVM 将 Reference 又细分为几种具体的引用类型,它们分别是 阅读全文
posted @ 2024-06-13 11:38 bin的技术小屋 阅读(1256) 评论(3) 推荐(4) 编辑
摘要: System.gc 之后到底发生了什么 ? 本文基于 OpenJDK17 进行讨论 在 JDK NIO 针对堆外内存的分配场景中,我们经常会看到 System.gc 的身影,比如当我们通过 FileChannel#map 对文件进行内存映射的时候,如果 JVM 进程虚拟内存空间中的虚拟内存不足,JVM 在 native 层就会抛出 OutOf 阅读全文
posted @ 2024-04-01 19:55 bin的技术小屋 阅读(1558) 评论(1) 推荐(8) 编辑
摘要: MappedByteBuffer VS FileChannel:从内核层面对比两者的性能差异 本文基于 Linux 内核 5.4 版本进行讨论 自上篇文章《从 Linux 内核角度探秘 JDK MappedByteBuffer》 发布之后,很多读者朋友私信我说,文章的信息量太大了,其中很多章节介绍的内容都是大家非常想要了解,并且是频繁被搜索的内容,所以根据读者朋友的建议,笔者决定将一些重要的 阅读全文
posted @ 2024-03-28 12:35 bin的技术小屋 阅读(1018) 评论(0) 推荐(4) 编辑