先看例题

别人给出解答
-Xmn500M 年轻代大小为500M.
XX:SurvivorRatio=3指 Survivor:eden=2:3(记住Survivor的占比恒为2即可),因此计算可以得出eden区为300M
常见JVM参数
-Xmx2G:设置JVM最大可用内存为2G.
-Xms1G:设置初始内存为1G,可以和-Xmx设置为一样,以避免每次垃圾回收完成后JVM重新分配内存。
-Xmn500M:设置年轻代大小为500M,整个堆大小=年轻代 + 年老代+ 持久代。
-Xss:设置每个线程的堆栈大小.JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K
-XX:NewRatio=4:设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代).设置为4,则年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5
-XX:SurvivorRatio=3:设置年轻代中Eden区与Survivor区的大小比值.设置为3,则两个Survivor区与一个Eden区的比值为2:3,一个Survivor区占整个年轻代的1/5
-XX:MaxPermSize=64m:设置持久代大小为64m.
-XX:MaxTenuringThreshold=0:设置垃圾最大年龄.如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代. 对于年老代比较多的应用,可以提高效率.如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活 时间,增加在年轻代即被回收的概论.
回收器选择
-XX:+UseParallelGC:选择垃圾收集器为并行收集器.此配置仅对年轻代有效.即上述配置下,年轻代使用并发收集,而年老代仍旧使用串行收集.。
-XX:ParallelGCThreads=20:配置并行收集器的线程数,即:同时多少个线程一起进行垃圾回收.此值最好配置与处理器数目相等。
-XX:+UseParallelOldGC:配置年老代垃圾收集方式为并行收集.JDK6.0支持对年老代并行收集.
-XX:MaxGCPauseMillis=100:设置每次年轻代垃圾回收的最长时间,如果无法满足此时间,JVM会自动调整年轻代大小,以满足此值。
-XX:+UseAdaptiveSizePolicy:设置此选项后,并行收集器会自动选择年轻代区大小和相应的Survivor区比例,以达到目标系统规定的最低相应时间或者收集频率等,此值建议使用并行收集器时,一直打开。
网友评论