首页 » 语言&开发 » Java » JVM参数之垃圾回收

JVM参数之垃圾回收

 

常见垃圾回收参数:

OptionDescription
-XX:+UseSerialGCSerial Garbage Collector 串行垃圾回收器
-XX:+UseParallelGCParallel Garbage Collector并行垃圾回收器
-XX:+UseConcMarkSweepGCCMS Garbage Collector并发标记垃圾回收器
-XX:ParallelCMSThreads=CMS Collector – number of threads to use 并发标记垃圾回收器使用的线程数,通常是cpu个数
-XX:+UseG1GCG1 Gargbage Collector 使用G1垃圾回收器

常见垃圾回收选项

OptionDescription
-XmsInitial heap memory size 初始化heap大小 -Xms512M
-XmxMaximum heap memory size 设置最大的heap大小
-XmnSize of Young Generation 年轻代的大小
-XX:PermSizeInitial Permanent Generation size 初始化永久带的大小
-XX:MaxPermSizeMaximum Permanent Generation size 最大的永久带大小

Parallel GC 并行垃圾回收策略举例:
java -Xmx3800m -Xms3800m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=20 -XX:+UseParallelOldGC -XX:MaxGCPauseMillis=100

CMS GC 并发标记清楚垃圾回收策略举例:

-server -Xms6000M -Xmx6000M -Xss512k -XX:NewSize=2250M -XX:MaxNewSize=2250M -XX:PermSize=128M -XX:MaxPermSize=256M  -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=31 -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly
配置解释
-server 设置server模式 
-Xms6000M 初始化堆大小
-Xmx6000M 最大堆大小
-Xss512k 每个线程堆栈大小(需严格测试,根据自身来看)
-XX:NewSize=2250M 设置新生代内存大小
-XX:MaxNewSize=2250M 最大新生代内存大小
-XX:PermSize=128M  持久代大小
-XX:MaxPermSize=256M  最大持久代大小
-XX:+AggressiveOpts 使用JDK优化技术(如果有)
-XX:+UseBiasedLocking 启用优化线程锁
-XX:+DisableExplicitGC 禁用显示的调用System.gc()
-XX:+UseParNewGC 新生代启用并发收集
-XX:+UseConcMarkSweepGC 年老代启用CMS收集
-XX:MaxTenuringThreshold=31 设置垃圾最大年龄
-XX:+CMSParallelRemarkEnabled 并发remark,减少mark时间
-XX:+UseCMSCompactAtFullCollection 并发GC时,对内存进行整理
-XX:LargePageSizeInBytes=128m 指定堆分页页面大小
-XX:+UseFastAccessorMethods get,set 方法转成本地代码,原始类型的快速优化
-XX:+UseCMSInitiatingOccupancyOnly 只有在 oldgeneration 在使用了初始化的比例后 concurrent collector 启动收集。


原文链接:JVM参数之垃圾回收,转载请注明来源!

0