2回复
5年前
为什么GC日志里新生代的大小比Xmn要小
昨天发现了一个比较奇怪的现象,为什么明明设置了Xmn的具体大小,但是从GC日志看却比这个小,这是为什么呢
public class GCTest {
public static void main(String args[]) {
while(true) {
byte[] b = new byte[1024];
}
}
}
JVM参数如下:
-Xmx200M -Xmn60M -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails
打印的GC日志如下:
[GC[ParNew: 49152K->265K(55296K), 0.0018670 secs] 49152K->265K(198656K), 0.0019080 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
[GC[ParNew: 49417K->315K(55296K), 0.0012820 secs] 49417K->315K(198656K), 0.0013050 secs] [Times: user=0.01 sys=0.00, real=0.01 secs]
[GC[ParNew: 49467K->320K(55296K), 0.0013820 secs] 49467K->320K(198656K), 0.0014070 secs] [Times: user=0.01 sys=0.00, real=0.01 secs]
[GC[ParNew: 49472K->290K(55296K), 0.0014840 secs] 49472K->290K(198656K), 0.0015120 secs] [Times: user=0.01 sys=0.00, real=0.00 secs]
从上面GC日志看,新生代的大小为55296K,而我设置了60M,这是为什么呢
4344 阅读