JVM 核心技术--调优分析与面试经验

3、JVM 核心技术--调优分析与面试经验

1. GC日志解读与分析

2. JVM 线程堆栈数据分析

image.png
  • VM 线程:单例的VMThread对象,负责执行VM操作

  • 定时任务线程:单例的WatcherThread 对象,模拟在VM中执行定时操作的计时器中断

  • GC 线程:垃圾收集器中,用于支持并行和并发垃圾回收的线程

  • 编译器线程:将字节码编译未本地机器代码

  • 信号分发线程:等待进程指示的信号,并将其分配给java级别的信号处理方法

安全点

  • 方法代码中被植入的安全点检测入口

  • 线程处于安全点状态:线程暂停执行,这个时候线程栈不再发生改变

  • JVM的安全点状态:所有线程都处于安全点状态。

JVM支持多种方式来进行线程转储

  • JDK工具,包括:jstack工具,jcmd工具,jconsole,jvisualvm,java mission control 等

  • shell 命令或者系统控制台,比如Linux的kill -3, windows的ctrl + break

  • jmx技术,主要是使用threadmx

fastthread.io 网站帮助测试 多线程的死锁请库。

内存分析与相关工具

image.png

一个java对象占用多少内存?

可以使用 Instrumentation.getObjectSize() ,方法来估算一个对象占用的内存空间。

JOL(Java object layout)可以用来查看对象内存布局

  1. JVM 问题分析调优经验

  2. GC 疑难情况问题分析

  3. JVM 常见面试问题汇总

  4. 总结回顾与作业实践

你可能感兴趣的:(JVM 核心技术--调优分析与面试经验)