性能问答>为什么GC日志里新生代的大小比Xmn要小>
2回复

为什么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,这是为什么呢

4304 阅读
请先登录,查看2条精彩评论吧
快去登录吧,你将获得
  • 浏览更多精彩评论
  • 和开发者讨论交流,共同进步