zoukankan      html  css  js  c++  java
  • 5.GC是什么时候触发的

      由于对象进行了分代处理,因此垃圾回收区域、时间也不一样。GC有两种类型:Scavenge GC和Full GC。

    5.1Scavenge GC

      一般情况下,当新对象生产,并且在Eden申请空间失败时,就会触发Scavenge GC,堆Eden区域进行GC,清除非存活对象,并且把尚且存活的对象移动到Survivor区。然后整理survivor的两个区。这种方式的GC是对年轻代的eden区进行,不会影响到老年代。因为大部分对象都是从eden开始的,同时eden区不会分配的很大,所以eden区的GC会很频繁。因此,一般在这里需要使用速度快、效率高的算法,使eden去能尽快空闲出来。

    5.2 Full GC

      对于整个堆进行整理,包括Yong 、Tenured 、Permemate。Full GC因为需要对整个堆进行回收,所以比Scavenge GC要慢,因此应该尽可能减少Full GC的次数。在对JVM调优的过程中,很大一部分工作就是对于Full GC的调节。有如下原因可能导致Full GC:

      1)老年代被写满;

      2)持久代被写满;

      3)System.gc()被显式调用;

      4)上一次GC后Heap的区域分配策略动态变化。

    参考:https://www.cnblogs.com/aspirant/p/8662690.html

  • 相关阅读:
    坚持的力量 第一篇
    有声似无声
    坚持的力量
    新浪技术面试题
    单词的个数
    我的研究生规划
    go to the train station
    百度面试题求绝对值最小的数
    关于CIW认证考试CIW 常见问题解答
    [恢]hdu 2087
  • 原文地址:https://www.cnblogs.com/li-jing/p/10840488.html
Copyright © 2011-2022 走看看