日期:2014-05-19  浏览次数:20713 次

JVM参数配置的重大疑惑
JVM参数典型设置: java -Xmx3550m -Xms3550m -Xmn2g -Xss128k

上述JVM配置是网上搜的结果,不知道是谁的例子

问题:

1 sun官方文档 年轻代大小 一般为堆大小的3/8(我没亲自看过),上述例子为什么2g/3550m占到56%(远远大于3/8);查看了一下我们项目的设置,竟然是76%,为什么这么大?

2 -XX:+UseConcMarkSweepGC 这个参数的作用是: gc时,大部分工作都并发进行;是说一边gc,一边跑应用?

3 -XX:SurvivorRatio=8 这个参数表示 两个Survivor区与一个Eden区的比值为2:8 ?也就是一个surivor占young的1/10,什么情况下才会设置这么悬殊?

4 JVM参数中 -d64 代表什么意思?

谢谢大侠们回复,

------解决方案--------------------
1.根据你这个项目中产生新对象的回收比例来确定的。
2.这个是设置JVM使用的收集器是哪个。当然这个设置也是有讲究的,具体的你可以查查资料。
3.其实Survivor也就是年轻代与老年代的一个过渡区,我认为可以这么看,其实在java中大部分的对象都是在eden区中,之后就被回收了,有少量的会被转移到Survivor区中去,然后更少的到Tenured(老年代)中去。所以Eden区比Survivor大很多。
4.我也不清楚了