JVM的进阶学习(GC Roots、JVM调优与参数配置、)

在这里插入图片描述

1. GC Roots,可达性分析

在这里插入图片描述
从GC roots的对象作为起始点,从GC Roots对象开始向下搜索,如果一个对象到GCRoots没有任何引用链相连,则说明对象不可用。即给定一个集合的引用作为根出发,通过引用关系遍历对象图,能被遍历的(可到达的)对象被判断为存活,没有被遍历的就自然被判断为死亡(可以被回收)。
一定是从GC Roots作为起始点的引用链才会判断为存活。
在这里插入图片描述

那么哪些可以作为GC Roots对象呢?

在这里插入图片描述

2、JVM参数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1. XX参数的:Boolean型

在这里插入图片描述
jps -l查看进行
jinfo -flag + 参数类型+进程号
结果中:+表示开启,-表示关闭
在这里插入图片描述
设值参数开启:
在这里插入图片描述
结果:
在这里插入图片描述

2. k,v设值类型

在这里插入图片描述
没修过前:
在这里插入图片描述
修改后:
在这里插入图片描述
在这里插入图片描述
MaxTenuringThreshold = 15 这个参数是年轻代升到养老区活过的次数,更改方法类似上面

也可以用-flags同时设值多个值

在这里插入图片描述

题外话:-Xms和-Xmx属于XX参数

在这里插入图片描述

3.如何查看JVM初始化的参数

java -XX:+PrintFlagsInitial(初始的)
java -XX:+PrintFlagsFinal(修改后的)

在这里插入图片描述
那么下面=和:=有什么区别呢?
在这里插入图片描述
=号是没有被修改过的默认的,:=是被人为修改或者jvm修改过的

java -XX:PrintCommandLineFlags -version,这个参数可以用来查看使用的哪个垃圾回收器(一共七大垃圾回收器)

在这里插入图片描述

发布了88 篇原创文章 · 获赞 70 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43736084/article/details/103991925