Skip to content

Commit 3fcd589

Browse files
author
nce40202
committed
docs: 更新README并添加预览图片
更新README文件,添加在线体验链接、运行界面截图以及详细的HotSpot JVM内存管理机制说明。同时,添加了预览图片以展示JVM内存可视化界面。
1 parent 3a3a234 commit 3fcd589

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

README.md

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,35 @@
11
# newbie-jvm-playground
22

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 内存管理的工作原理。

public/preview.png

75.2 KB
Loading

0 commit comments

Comments
 (0)