您的位置:首页 > 其它

JVM内存以及垃圾回收(裴东辉)

2017-03-02 15:00 183 查看
、整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。

堆设置
 -Xms: 初始堆大小
  -Xmx: 最大堆大小
 ---------------------
 -XX:NewSize=n: 设置年轻代大小
 -XX:NewRatio=n: 设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4
 ---------------------
 -XX:SurvivorRatio=n:
  年轻代中Eden区与两个Survivor区的比值。
  注意Survivor区有两个。如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5
 ----------------------
 -XX:
 PermSize=n:设置持久代初始化大小
 MaxPermSize=n:设置持久代大小

示例:
-Xms300M -Xmx600M
-XX:NewSize=80M -XX:NewRatio=3 -XX:SurvivorRatio=3
-XX:PermSize=60M -XX:MaxPermSize=120M
则:
整个JVM内存大小(440M)=年轻代大小(80M) + 年老代大小(240M) + 持久代大小(120M)。
年轻代大小(80M)= Eden区(48M)+Survivor区(16M)+Survivor区(16M)
根据这些参数,配置对应的服务启动参数。
亲测:







垃圾回收器选择

1吞吐量优先的并行收集器,并行收集器主要以到达一定的吞吐量为目标,适用于科学技术和后台处理等。
 示例: -XX:+UseParallelGC -XX:ParallelGCThreads=1
 -XX:+UseParallelGC:
  选择垃圾收集器为并行收集器。此配置仅对年轻代有效。即上述配置下,年轻代使用并发收集,而年老代仍旧使用串行收集。
 -XX:ParallelGCThreads=1:
 配置并行收集器的线程数,即:同时多少个线程一起进行垃圾回收。此值最好配置与处理器数目相等。

2响应时间优先的并发收集器,并发收集器主要是保证系统的响应时间,减少垃圾收集时的停顿时间。
 适用于应用服务器、电信领域等。
 示例: -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:ParallelGCThreads=1
  -XX:+UseConcMarkSweepGC:
 设置年老代为并发收集。测试中配置这个以后,-XX:NewRatio=4的配置失效了,原因不明。
 所以,此时年轻代大小最好用-Xmn设置。
 -XX:+UseParNewGC:
  设置年轻代为并行收集。
 可与CMS收集同时使用。JDK5.0以上,JVM会根据系统配置自行设置,所以无需再设置此值。

摘自:http://unixboy.iteye.com/blog/174173/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: