网上学习的JVM课程,跟随视频自己做的笔记
2. 可达性分析算法:
开启指令:-XX:+UseSerialGC=Serial+SerialOld Serial为新生代垃圾回收器,采用复制算法。 SerialOld为老年代,采用标记+整理算法。 都为单线程的,垃圾回收时都会STW。
参数一:并行的垃圾回收器,JDK1.8默认的垃圾回收器。 参数二:采用自适应调整伊甸园,晋升阈值和幸存区大小。 两个目标: 参数三:计算公式:1/(1+ratio),比如radio是99,则公式得0.01,即100分钟内最多有1分钟来进行垃圾回收,如果达不到这个目标则会调整堆内存,一般是调大,来减少垃圾回收的次数,来提高系统吞吐量。一般设置19。 参数四:最大停留ms数,默认200ms。与上边是冲突的,因为如果上边有做出调大堆内存,那么停留时间可能就会变长,导致达不到这一目标。 这两个是冲突的。 参数五:控制垃圾回收时并行的线程数量。
-XX:+UseConcMarkSweepGC ~ -XX:+UseParNewGC ~ SerialOld 是工作在老年代基于标记清除算法的垃圾回收器,并发失败会降级为SerialOld串行垃圾回收器。 初始标记和重新标记会STW,初始标记只标记根对象,因为并发标记时用户线程也在执行,会产生新的垃圾,所以需要重新标记。