File tree Expand file tree Collapse file tree 2 files changed +33
-1
lines changed Expand file tree Collapse file tree 2 files changed +33
-1
lines changed Original file line number Diff line number Diff line change 1
1
# newbie-jvm-playground
2
2
3
- 从字节码到 GC:可交互的 JVM 全流程仿真实验室
3
+ 从字节码到 GC:可交互的 JVM 全流程仿真实验室
4
+
5
+ ## 在线体验
6
+
7
+ 访问地址:[ https://null-object-0000.github.io/newbie-jvm-playground/ ] ( https://null-object-0000.github.io/newbie-jvm-playground/ )
8
+
9
+ ## 运行界面
10
+
11
+ ![ JVM内存可视化界面] ( ./public/preview.png )
12
+
13
+ ## 已实现的 HotSpot JVM 内存管理机制
14
+
15
+ ### 内存分配机制
16
+
17
+ - ** Eden 优先分配** :新创建的对象优先在 Eden 区分配内存空间
18
+ - ** 大对象直接进入老年代** :当对象大小超过 PretenureSizeThreshold 阈值时,直接在老年代分配内存
19
+ - ** 空间分配担保** :当 Survivor 区空间不足时,将对象直接分配到老年代
20
+
21
+ ### 对象晋升机制
22
+
23
+ - ** 动态年龄判定** :根据 TargetSurvivorRatio 参数,当 Survivor 区中相同年龄对象大小总和超过 Survivor 区目标使用率时,年龄大于等于该年龄的对象直接进入老年代
24
+ - ** 对象年龄阈值** :通过 MaxTenuringThreshold 参数控制对象在 Survivor 区的最大年龄,超过该阈值的对象将晋升至老年代
25
+
26
+ ### GC 触发机制
27
+
28
+ - ** Minor GC 触发条件** :当 Eden 区空间不足时自动触发
29
+ - ** Minor GC 执行流程** :
30
+ - 扫描 Eden 区和 From Survivor 区的存活对象
31
+ - 将存活对象复制到 To Survivor 区或老年代
32
+ - 清空 Eden 区和 From Survivor 区
33
+ - 交换 From Survivor 和 To Survivor 区的角色
34
+
35
+ 以上机制均可通过可视化界面进行交互式操作,帮助理解 JVM 内存管理的工作原理。
You can’t perform that action at this time.
0 commit comments