关于java:jvm-Safe-Point

37次阅读

共计 621 个字符,预计需要花费 2 分钟才能阅读完成。

VM Threads,专门用来执行一些非凡的 VM Operation,比方分派 GC,thread dump 等,这些工作,都须要整个 Heap,以及所有线程的状态是静止的,统一的能力进行。所以 JVM 引入了平安点 (Safe Point) 的概念,想方法在须要进行 VM Operation 时,告诉所有的线程进入一个静止的平安点。

须要进入平安点的 vm operation
1:JIT 相干,比方 Code deoptimization, Flushing code cache;
2:Class redefinition (e.g. javaagent,AOP 代码植入的产生的 instrumentation);
3:Biased lock revocation 勾销偏差锁;
4:Various debug operation (e.g. thread dump or deadlock check);
5:gc(次要是 yang gc 和并发 gc 中的标记节点)

查看 stw 耗费的工夫以及触发的起因 jvm 参数
-XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplicationConcurrentTime -XX:+PrintSafepointStatistics -XX: PrintSafepointStatisticsCount=1 -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=/dev/shm/vm.log

正文完
 0