全网最硬核 JDK 解析 - 6. 通过 JFR 快速定位 Java 堆 OOM 实战与底层原理2025年11月18日·7190 字·15 分钟深入讲解如何通过 JFR(JDK Flight Recorder)快速定位 Java 堆 OOM 的实战方法与底层原理,涵盖三种典型 OOM 场景的 JFR 事件分析,包括 Allocation Requiring GC、ZAllocationStall、ObjectAllocationOutsideTLAB 等关键事件的采集与分析技巧。
浅尝辄止 JEP - JEP-502:Stable Value(预览)2025年11月1日·4869 字·10 分钟探索 JEP 502 的 StableValue API,它解决了 Java 开发中不变性与初始化灵活性之间的根本权衡。本文涵盖 API 设计、核心实现细节(包括双重检查锁定模式、内存语义)以及使用 @Stable 注解的 JIT 优化策略。
为什么应该避免在生产环境中启用 HeapDumpOnOutOfMemoryError2025年5月1日·1536 字·4 分钟全面指南,探讨为什么启用 HeapDumpOnOutOfMemoryError 会在生产环境中导致严重的性能问题,哪些 OutOfMemoryError 类型实际触发堆转储,以及使用 JFR 进行内存泄漏检测和自动服务重启策略等更好的替代方案。
GraalVM Native Image 进程能否被 jps 检测到?以及我们的生产策略2024年4月19日·666 字·2 分钟了解 GraalVM Native Image 进程何时会在 jps 中显示,并学习我们在生产环境中在 GraalVM Native Image 和 JVM 之间选择的经过实战验证的方法。我们详细介绍了针对 Lambda 风格任务与长期运行的微服务的策略。
全网最硬核 JDK 分析 - 4. OpenJDK JVM 内存结构实现2023年3月28日·69418 字·139 分钟一次全面深入的 JVM 内存架构剖析,涵盖堆内存、元空间、线程栈以及压缩对象指针。本文从内存分配流程、Native Memory Tracking 出发,并通过 jol、jhsdb、JFR 等工具示例,帮助理解 JVM 内存管理内部机制。
解决神秘的 JVM Safepoint 问题:从问题到解决方案的探索之旅2022年6月19日·2347 字·5 分钟深入探讨诊断和解决生产 JVM 问题,其中应用在每小时日志同步任务期间会冻结。我们探索 safepoint 分析、JVM 日志输出阻塞、异步日志实现和 WebFlux 优化以实现完整解决方案。
解决 JVM Safepoint 延迟:从 EFS 集成到异步日志的探索之旅2022年6月16日·2317 字·5 分钟深入调查升级到 Java 17 并实施 AWS EFS 集中式日志收集后出现的神秘 JVM safepoint 延迟问题。我们发现日志输出期间的文件 I/O 阻塞如何冻结整个 JVM 进程,并通过异步日志和正确的 WebFlux 实现解决了这个问题。
全网最硬核 JDK 分析 - 3. Java 新内存模型解析与实验2022年3月28日·25486 字·51 分钟从规范到实现深入探讨 Java 内存模型(JMM),涵盖内存屏障、CPU 重排序和 Java 9+ VarHandle API。了解一致性、因果性、共识性,以及 volatile、final 和其他同步机制在底层的工作原理,并提供实用的 jcstress 示例。
全网最硬核 JDK 分析 - 1. TLAB 全面解析2021年2月3日·21531 字·43 分钟深入探讨 JVM 的线程本地分配缓冲区(TLAB)机制,涵盖设计原理、实现细节、性能优化和源代码分析。了解 TLAB 如何提高多线程环境中的内存分配效率,并掌握 TLAB 调优技术。
OpenJDK 11 JVM 日志:新统一配置完整指南2020年2月6日·2259 字·5 分钟了解 OpenJDK 11 如何通过其统一配置系统彻底改变 JVM 日志记录。学习用于 GC 分析、类加载和运行时编译的基本日志标签,以及使用 jcmd 进行实时性能调优的动态日志配置。