parallel scavenge 收集器 参数GCTimeRatio
GCTimeRatio参数的值应当是一个大于0且小于100的整数,也就是垃圾收集时间占总时间的比率,相当于是吞吐量的倒数。如果把此参数设置为19,那允许的最大GC时间就占总时间的5%(即1/(1+19)),默认值为99,就是允许最大1%(即1/(1+99))的垃圾收集时间。(引自《深入理解java虚拟机》)
这句描述没有太懂。
首先作者先说“也就是垃圾收集时间占总时间的比率”例子中设置为19 ,最后确得出“GC时间占用的总时间比例为5%”,这里的“垃圾收集时间”和“GC时间”难道是不一个概念吗?
其次,“相当于吞吐量的倒数”倒数的概念特意百度了一下:分子和分母相倒并且两个乘积是1的数互为倒数,0没有倒数
。还是例子中的参数设置为19
,那么吞吐量取其倒数,应该就是1/19,二不是“5%(即1/(1+19))”
所以是否有大神可以指正一下,是我没看懂作者的描述吗?
我好像有点理解了,作者所说的倒数
是两个数字相加为1,而不是我所理解两个相乘为1
书中定义的吞吐量= 运行客户代码时间/(运行客户代码时间+垃圾收集时间)
如果公式是对的,那么 参数= 运行客户代码时间/垃圾回收时间,这样就能解释这个例子的公式了