JVM G1 源码分析和调优
jvm常见术语
术语 | 描述 |
---|---|
并行(parallelism) | 指两个或多个事件在同一时刻发生,在现代计算机中通常指多台处理器上同时处理多个任务 |
并发(concurrency) | 指两个或多个事件在同一时间间隔发生 |
ParNew | 并发收集器 |
CMS | 并发标记清除 |
JVM中的并行 | 指多个垃圾回收相关线程在操作系统之上并发运行,这里的并行强调的是只有立即回收线程工作,Java应用都暂停执行,因此parNew工作的时候一定发生STW |
JVM中的并发 | 指垃圾回收相关线程并发运行(启动多个线程的情况下),同时这些线程会和Java应用 |
Stop-the-world(STW) | 直译就是停止一切,在JVM中指停止一切Java应用线程 |
安全点(Safepoint) | 指JVM在执行一些操作是需要STW,但并不是任何线程在任何地方都能进入STW,其目的是,当线程进入到安全点的时候,线程就会自动终止 |
Mutator | 指的是Java应用程序线程 |
记忆集(Remember Set) | 线程RSet。主要记录不同的代际对象的引用关系 |
Refine | 主要指Rset的线程 |
Evacuation | 转移、撤退或者回收,简称Evac,指的是发现活跃对象,并将对象赋值到新地址的过程 |
回收(Reclaim) | 通常指的是分区对象已经死亡或者已经完成Evac,分区可以未JVM再次使用 |
Closure | 闭包,类似于迭代器,通常提供了堆内存的访问 |
GC root | 垃圾回收的跟,在垃圾回收中,需要从GC root出发标记活跃对象,确保正在使用的对象在垃圾回收后都是存活的 |
根集合(Root Set) | GC root 的集合 |
Full GC | FGC 整个堆的垃圾回收动作,通常Full Gc是串行化的 |
再标记(Remark) | 再并发标记算法中,处理完并发标记后,需要更新并发标记中Mutator变更的引用,这一步需要STW |