关于GC的笔记-待再整理

    历史上,思想总共三种回收:

    1.    标记-复制,比如存活区,实现简单,效率高,不会存在内存碎片,但需要2倍的内存来管理

    2.    标记-清除,标记出需要回收的对象,标记完成之后统一清除对象。效率高,容易产生内存碎片。

    3.    标记-清理,标记完后续在清理无用对象后让所有存活的对象都向一端移动,并更新引用其对象的指针。因为要移动对象,所以它的效率要比“标记-清理”效率低,但是不会产生内存碎片


-Xms :表示java虚拟机堆区内存初始内存分配的大小

-Xmx: 表示java虚拟机堆区内存可被分配的最大上限

-XX:PermSize:表示非堆区初始内存分配大小,JDK8不再使用

-XX:MaxPermSize:表示对非堆区分配的内存的最大上限,JDK8不再使用

-XX:MaxMetaspaceSize:JDK8使用的元空间,即上面的非堆区

-XX:+printGC

-XX:+PrintGCDetails

-Xmn:设置新生代大小

-NewRatio:设置老年代和新生代的比率

-SurvivorRatio:设置新生代Edenspace和一个Survivor space的比率

-XX:+DisableExplicitGC 可以关闭system.gc


-XX:+UseSerialGC,新生代和老年代使用串行回收器

-XX:+UseParallelGC,新生代和老年代使用并行回收器

-XX:+UseParNewGC: 在新生代使用并行收集器。

-XX:+UseParallelOldGC: 老年代使用并行回收收集器。

--XX:+UseConcMarkSweepGC: 新生代使用并行收集器,老年代使用CMS+串行收集器。

-XX:+UseG1GC 使用G1回收器,这里避免使用-Xmn 选项或-XX:NewRatio等其他相关选项显式设置年轻代大小,因为固定年轻代的大小会覆盖暂停时间目标

XX:+MaxGCPauseMills:设置最大垃圾收集停顿时间

G1分为Young GC和Mixed GC,两种都是Stop TheWorld(STW)的。

GC主要为了减少转向老年代的对象数量和Full GC的执行时间。

具体G1的两种GC可以参考:

http://blog.jobbole.com/109170/


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值