📚 堆内存 & Native 内存实战
30章
从入门到全链路优化
01
JVM内存模型全景
Java堆、方法区、虚拟机栈、本地方法栈、程序计数器角色与关系
02
堆内存深度剖析
新生代(Eden/Survivor)、老年代、元空间结构与GC流程
03
堆内存分配机制
对象优先Eden分配、大对象直接进老年代、长期存活对象晋升
04
堆内存调优实战
-Xms -Xmx -Xmn -XX:SurvivorRatio 参数配置与案例分析
05
堆内存溢出排查
Heap Dump获取、MAT分析、内存泄漏定位
06
GC算法详解
标记-清除 / 标记-复制 / 标记-整理 原理与适用场景
07
GC收集器对比
Serial · ParNew · Parallel Scavenge · CMS · G1 · ZGC
08
G1收集器实战
Region划分、停顿预测模型、Mixed GC调优参数
09
ZGC收集器
染色指针、读屏障、并发处理与低延迟原理
10
GC日志分析
-XX:+PrintGCDetails · GCViewer · 日志解读与调优
11
Native内存概述
Native内存定义、与堆内存区别、JVM中Native内存用途
12
Direct Buffer
直接内存分配/回收、-XX:MaxDirectMemorySize、与堆内存对比
13
JNI与Native内存
JNI内存管理、GlobalRef/LocalRef、内存泄漏风险
14
NIO与Netty Native内存
ByteBuf分类、Pooled/Unpooled、内存池化技术
15
线程栈内存
-Xss参数、栈深度与递归、StackOverflowError排查
16
元空间 Metaspace
永久代→元空间演变、-XX:MetaspaceSize、类卸载机制
17
Native内存跟踪 NMT
NMT开启与解读、Jcmd工具使用
18
pmap与gdb
Linux查看Native内存映射、gdb attach分析
19
JNI内存泄漏检测
Valgrind、AddressSanitizer在Java Native代码中的应用
20
Netty内存池剖析
Arena · Chunk · Page · Subpage 层级与分配策略
21
堆外缓存技术
Ehcache · MapDB · Chronicle Map 堆外存储原理与对比
22
RocketMQ & Kafka Native内存
PageCache、零拷贝、MappedByteBuffer使用
23
Elasticsearch内存管理
堆内存与OS缓存分工、Circuit Breaker机制
24
JVM Crash分析
hs_err_pid日志解读、SIGSEGV处理、Native崩溃定位
25
Docker容器内存限制
-XX:+UseContainerSupport、CGroup内存限制与JVM适配
26
Arthas & JProfiler
在线诊断堆与Native内存、火焰图分析
27
JMH基准测试
堆内存与Native内存分配性能对比、测试用例编写
28
内存泄漏案例实战
ThreadLocal泄漏、类加载器泄漏、Direct Buffer泄漏
29
JVM内存监控体系
Prometheus + Grafana 监控堆与Native内存、告警规则
30
全链路内存优化
代码层面 → JVM参数 → 操作系统层面综合优化策略