zoukankan      html  css  js  c++  java
  • JVM-垃圾收集算法

    新生代:复制算法,IBM研究过,约98%对象是“朝生夕死”,所以不需要按照1:1来划分;HotSpot中默认是8:1:1,即每次新生代可用空间为90%,只有10%会被“浪费”,

    当Survivor空间不够时,需要依赖老年代进行分配担保。

      

    垃圾收集算法
      1.标记-清除算法(Mark-Sweep) 2.复制算法(Copying)  3.标记-整理算法(Mark-Compact)  4.分代收集算法(Generational Collection)
    简介 最基础 为解决1的效率问题;  
    实现方案  

    将内存分为相等的2个部分,

    当1块用完后,将存活对象复制到另1块上,

    然后一次清理掉已用那块;

    先标记,

    再让所有存活的对象都向一端移动,

    清除掉端边界以外的内存;

     

     新生代:对象存活率低,有老年代作为担保;

    -->复制算法

    老年代:对象存活率高,无额外空间担保;

    -->标记-清除、标记-整理孙

    优点    当对象存活率很低,约10%以内,效率高    
    缺点

    1.效率问题,标记和清除两个过程效率都不高;

    2.空间问题,产生内存碎片,可能会影响大对象的分配,导致提前触发GC;

    1.将内存缩小为原来的一半;

    2.当对象存活率较高时,就要进行较多的复制操作,效率变低;

       
    适用领域  

    多用于新生代,

    将Eden和From区存活对象移动到To区,

    然后清除Eden和From区,

    老年代作为担保;

       
  • 相关阅读:
    闪回flashback
    Oracle数据文件在open状态被删除的恢复记录
    从浅到深掌握Oracle的锁
    Oracle 11g 11201_RHEL5.5_RAC_VBOX 详细搭建步骤
    AWR Report 关键参数详细分析
    16、Xtrabackup备份与恢复
    17、percona-toolkit
    插入排序
    选择排序
    冒泡排序
  • 原文地址:https://www.cnblogs.com/WangXiaoYu-/p/10613247.html
Copyright © 2011-2022 走看看