Parallel Scavenge收集器GCTimeRatio参数
学习Java虚拟机的时候看到了HotSpot虚拟机中的垃圾收集器这一部分,对于新生代收集器Parallel Scavenge,其目标是达到一个可控制的吞吐量。至于其他的一些收集器细节内容就不多介绍,书中也都有讲,主要是对GCTimeRatio参数的理解。
书中对GCTimeRatio参数的解释是“GCTimeRatio参数的值是垃圾收集时间占总时间的比率,相当于是吞吐量的倒数”。然后又举了两个例子,如果此参数设置为19,那么允许的最大GC时间就占总时间的5%(即1/(1+19);此参数的默认值为99,就是允许的最大GC时间就占总时间的1%(即1/(1+99)。
显然,书中提出的解释无法与举的两个例子匹配,所以上网找了一些资料,感觉解释的很有道理,但是看到书中的注释中有Oracle公司的网站,为了验证就查了一下官网信息。
下面贴出官网的解释:
Oracle官网对参数的解释
链接为:https://docs.oracle.com/javase/1.5.0/docs/guide/vm/gc-ergonomics.html
从官网的解释可以看出:
吞吐量的计算为:
n/(1+n),(-XX:GCTimeRatio=n);
GCTimeRatio参数表示:
运行用户代码时间/垃圾回收时间。
总结
遇到问题时,可以从官网的信息去查证。