关于GC垃圾回收的那点事


因为GC的复制算法,导致从1536-》1536K ,总空间少掉1536K。一般大对象以及一直存活经过多次GC未能回收的对象都会进入老年代。



nParNew
-XX:+UseParNewGC
新生代并行
老年代串行
Serial收集器新生代的并行版本
复制算法
多线程,需要多核支持
-XX:ParallelGCThreads限制线程数量



nParallel收集器
类似ParNew
新生代复制算法
老年代标记-压缩
更加关注吞吐量
-XX:+UseParallelGC
使用Parallel收集器+老年代串行
-XX:+UseParallelOldGC
使用Parallel收集器+并行老年代


n-XX:MaxGCPauseMills
最大停顿时间,单位毫秒
GC尽力保证回收时间不超过设定值
n-XX:GCTimeRatio
0-100的取值范围
垃圾收集时间占总时间的比
默认99,即最大允许1%时间做GC



GC参数整理:


n-XX:+UseSerialGC:在新生代和老年代使用串行收集器
n-XX:SurvivorRatio:设置eden区大小和survivior区大小的比例
n-XX:NewRatio:新生代和老年代的比
n-XX:+UseParNewGC:在新生代使用并行收集器
n-XX:+UseParallelGC:新生代使用并行回收收集器
n-XX:+UseParallelOldGC:老年代使用并行回收收集器
n-XX:ParallelGCThreads:设置用于垃圾回收的线程数
n-XX:+UseConcMarkSweepGC:新生代使用并行收集器,老年代使用CMS+串行收集器
n-XX:ParallelCMSThreads:设定CMS的线程数量
n-XX:CMSInitiatingOccupancyFraction:设置CMS收集器在老年代空间被使用多少后触发
n-XX:+UseCMSCompactAtFullCollection:设置CMS收集器在完成垃圾收集后是否要进行一次内存碎片的整理
n-XX:CMSFullGCsBeforeCompaction:设定进行多少次CMS垃圾回收后,进行一次内存压缩
n-XX:+CMSClassUnloadingEnabled:允许对类元数据进行回收
n-XX:CMSInitiatingPermOccupancyFraction:当永久区占用率达到这一百分比时,启动CMS回收
n-XX:UseCMSInitiatingOccupancyOnly:表示只在到达阀值的时候,才进行CMS回收



nJDK6:使用最大堆512M堆处理请求
参数:
setCATALINA_OPTS=-Xmx512m -Xms64m -XX:MaxPermSize=32M  -Xloggc:gc.log-XX:+PrintGCDetails

-Xms64m 设置是JVM虚拟机产生一个大的堆,JVM就不会往一个堆区复制,从而减少GC数量


GC的回收机制还是在老年代里。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值