jvm_3_GC参数

1 对象在堆



 

2 串行收集器

特点:

a) 最古老,最稳定

b) 效率高

c) 可能会产生较长停顿

d) 使用参数 -XX:+UseSerialGC 来启用,启用后,新生代对象采用复制算法,老年代对象采用标记-压缩算法

执行流程(单线程执行):



 

3 并行收集器

a) 使用如下参数开启:

-XX:+UseParNewGC 

开启后,新生代并行回收,老年代串行回收,因此仅影响新生代的收集。

b) 多线程需要多核支持

c) 采用复制算法

d) 使用参数 -XX:ParallelGCThreads限制线程数量

执行流程(多线程执行):



 

4 CMS收集器

......

5 为减轻GC压力,我们需要注意什么:

a) 软件如何设计架构

b) 代码如何写

c)堆空间如何分配

6 GC参数整理:

-XX:+UseSerialGC:在新生代和老年代使用串行收集器
-XX:SurvivorRatio:设置eden区大小和survivior区大小的比例
-XX:NewRatio:新生代和老年代的比
-XX:+UseParNewGC:在新生代使用并行收集器
-XX:+UseParallelGC :新生代使用并行回收收集器
-XX:+UseParallelOldGC:老年代使用并行回收收集器
-XX:ParallelGCThreads:设置用于垃圾回收的线程数
-XX:+UseConcMarkSweepGC:新生代使用并行收集器,老年代使用CMS+串行收集器
-XX:ParallelCMSThreads:设定CMS的线程数量
-XX:CMSInitiatingOccupancyFraction:设置CMS收集器在老年代空间被使用多少后触发

-XX:+UseCMSCompactAtFullCollection:设置CMS收集器在完成垃圾收集后是否要进行一次内存碎片的整理
-XX:CMSFullGCsBeforeCompaction:设定进行多少次CMS垃圾回收后,进行一次内存压缩
-XX:+CMSClassUnloadingEnabled:允许对类元数据进行回收
-XX:CMSInitiatingPermOccupancyFraction:当永久区占用率达到这一百分比时,启动CMS回收
-XX:UseCMSInitiatingOccupancyOnly:表示只在到达阀值的时候,才进行CMS回收

g干货甚少.....

猜你喜欢

转载自chengjianxiaoxue.iteye.com/blog/2149757
今日推荐