深入理解Java虚拟机 JVM高级特性与最佳实践 阅读笔记

垃圾收集算法

标记-清除算法 Mark-Sweep

复制算法 Copying

标记-整理算法 Mark-Compact

HotSpot JVM 1.6 垃圾收集器

Serial 收集器

ParNew 收集器

MinorGC收集新生代

FullGC收集老年代

Parallel Scavenge 收集器

Serial Old 收集器

Parallel Old 收集器

CMS 收集器 Concurrent Mark Sweep

CMS收集器有3中收集操作:

  1. MinorGC 新生代对象回收(Stop The World)
  2. Concurrent Cycle 并发收集老年代
  3. FullGC

CMS回收新生代空间

CMS并发垃圾回收

G1收集器

G1主要包含4个操作

  1. 新生代垃圾收集
  2. 后台收集,并发周期
  3. 混合式垃圾收集
  4. FullGC

G1新生代收集

G1并发垃圾收集

G1混合式收集

JVM监控和故障处理工具

jps: JVM Process Status Tool

显示虚拟机进程

$ jps -mlv

jstat: JVM Statistics Monitoring Tool

收集虚拟机运行时数据

$ jstat -gcutil 41899

jinfo: Configuration Info for Java

虚拟机配置信息

$ jinfo 41899

jmap: Memory Map for Java

内存快照heapdump

$ jmap -heap 41899
$ jmap -histo 41899
$ jmap -histo:live 41899
$ jmap -dump:format=b,file=mars.bin 41899

jhat: JVM Heap Dump Browser

分析heapdump文件

$ jhat mars.bin
# 访问 http://127.0.0.1:7000/

jstack: Stack Trace for Java

显示虚拟机线程快照

$ jstack 41899

JConsole: Java监视与管理控制台

$ jconsole

VisualVM: 多合一故障处理工具

下载:https://visualvm.github.io/download.html

Written on December 6, 2018