Jvm-9—垃圾回收及垃圾回收器

        1.System.gc()

        System.gc会显示地触发Full GC,同时对老年代和新生代进行回收。但是System.gc()无法保证对垃圾收集器的调用。

        程序执行时并非任何时刻都能停下来开始GC,只有特定的位置才能停顿下来进行GC.能停止的位置成为安全点。

        2.几种引用关系——强、软、弱、虚,引用强度逐渐减弱

        强引用:最常见的,只要引用关系没有断开,永远不会被回收。

        软引用:内存不足即回收。高速缓存就用到的软引用。

        弱引用:发现即回收。当系统资源充足不进行GC时,这些资源可保留。WeakHashMap

        虚引用:如果一个对象仅有虚引用,那它几乎和没有引用一样。

        3.评估GC的性能指标

        吞吐量:应用运行时间/应用运行时间+内存回收时间

        暂停时间:执行垃圾回收时 工作线程被暂停的时间

        内存占用:堆区所占的内存大小

        现在标准:在最大吞吐量优先的情况下,降低停顿时间

        4. 垃圾回收器

        4.1 查看默认垃圾回收器

        -XX:+PrintCommandLineFlags

        jinfo -flag 相关垃圾回收器参数 进程Id

         4.2Serial回收器:串行回收

        Serial是最基本、最悠久的垃圾收集器。Serial收集器采用复制算法、串行回收和“Stop the World”机制的方式回收新生代空间。Serial Old采用串行回收、标记压缩算法(防止碎片化)回收老年代。

        指定使用Serial  -XX:+UseSerialGC

        4.3 ParNew 并行回收

        ParNew与Serial相比  除了是多线程之外没有其他的区别。

        4.4 Parallel 吞吐量优先

        Paralled Scavenge收集器的目标是达到一个可控制的吞吐量,自适应调节(根据应用的性能监控自动调节参数)是它和ParNew的一个区别。

        4.5 CMS 低延迟-低暂停时间

        CMS(Concurrent-Mark-Sweep)是第一款真正意义上的并发收集器,可以让垃圾收集线程和用户线程同时工作。尽可能的缩短垃圾收集时用户线程的停顿时间,采用的是标记清除算法。

         整个过程分为4个阶段:

  1. 初始标记&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值