`

GC的基本算法

 
阅读更多

1、引用计数(reference counting)
    原理:此对象有一个引用,则+1;删除一个引用,则-1。只用收集计数为0的对象。
    

 

缺点:无法处理循环引用的问题。如:

 

对象A和B分别有字段b、a,令A.b=B和B.a=A,除此之外这2个对象再无任何引用,那实际上这2个对象已经不可能再被访问,但是引用计数算法却无法回收他们。 

2、复制(copying)
    原理:把内存空间划分为2个相等的区域,每次只使用一个区域。垃圾回收时,遍历当前使用区域,把正在使用的对象复制到另外一个区域。
    优点:不会出现碎片问题。
    缺点:1、暂停整个应用。2、需要2倍的内存空间。


3、标记-清扫(Mark-and-sweep)---sun前期版本就是用这个技术。

 

    原理:对于“活”的对象,一定可以追溯到其存活在堆栈、静态存储区之中的引用。这个引用链条可能会穿过数个对象层次。第一阶段:从GC roots开始遍历所有的引用,对有活的对象进行标记。第二阶段:对堆进行遍历,把未标记的对象进行清除。这个解决了循环引用的问题。
    缺点:1、暂停整个应用;2、会产生内存碎片。

4、标记-压缩(Mark-Compact)自适应

    原理:第一阶段标记活的对象,第二阶段把为标记的对象压缩到堆的其中一块,按顺序放。
    优点:1、避免标记扫描的碎片问题;2、避免停止复制的空间问题。
    
    

 

具体使用什么方法GC,Java虚拟机会进行监视,如果所有对象都很稳定,垃圾回收器的效率低的话,就切换到“标记-扫描”方式;同样,Java虚拟机会跟踪“标记-扫描”的效果,要是堆空间碎片出现很多碎片,就会切换回“停止-复制”模式。这就是自适应的技术。

5、分代(generational collecting)-----J2SE1.2以后使用此算法

    原理:基于对象生命周期分析得出的垃圾回收算法。把对象分为年轻代、年老代、持久代,对不同的生命周期使用不同的算法(2-3方法中的一个即4自适应)进行回收。

 

//todo

分享到:
评论

相关推荐

    计算机视觉视差图(GC算法)

    ### 计算机视觉中的视差图生成:GC算法详解 #### 一、引言 在计算机视觉领域,双目视觉技术是实现三维重建的重要...此外,还介绍了GC算法的基本原理,帮助读者更好地理解该算法的工作机制及其在实际应用中的价值。

    深入JVM内核—原理、诊断与优化视频教程-4.GC算法与种类

    二、GC的基本概念 GC是JVM自动进行内存管理的重要机制,它负责回收不再使用的对象所占用的内存,防止内存泄漏。GC的主要目标是提高应用性能和内存使用效率。 三、GC算法 1. **标记-清除(Mark-Sweep)**:这是最...

    GC算法:GC算法

    在这个GC算法笔记中,我们将深入探讨GC的基本原理、类型以及它们在C++环境下的应用。 首先,理解GC的基本概念至关重要。GC的主要目标是自动识别并释放不再使用的内存,防止内存泄漏。它通过跟踪对象的引用关系来...

    java基础学习JVM中GC的算法

    Minor GC是JVM中的一种基本GC机制,它对年轻代中的对象进行回收。当年轻代中的对象达到一定的阈值时,JVM就会执行Minor GC,清理年轻代中的垃圾对象。Minor GC的执行频率较高,通常在几毫秒到几十毫秒之间。 老...

    GC基本调优工具介绍

    针对不同区域,JVM提供了多种GC算法,如Serial、Parallel、CMS、G1等,每种算法有其适用场景和优缺点。 1. **VisualVM**:这是一款集成的Java性能分析工具,可以显示JVM的实时状态,包括类加载、线程、CPU、内存和...

    JVM之基本的垃圾回收算法汇总

    这篇博客将探讨JVM中的基本垃圾回收算法,帮助我们更好地理解JVM内存管理的原理。 1. 标记-清除(Mark-Sweep)算法 这是最早的垃圾回收算法之一。它分为两个阶段:标记和清除。首先,从根节点开始遍历所有可达对象...

    Java垃圾回收GC机制

    复制算法的基本思想是将内存分为两块,每次只用其中一块,当一块内存用完,就将还活着的对象复制到另外一块上面。这种算法不会产生内存碎片。在GC开始的时候,对象只会存在于Eden区和名为“From”的Survivor区,...

    java虚拟机中gc的基本原理 .docx

    理解GC的基本原理对于优化Java应用的性能至关重要,尤其是在对性能要求较高的场景,如嵌入式系统和实时系统。 GC的基本原理主要涉及到对象的生命周期管理和内存的自动回收。当程序员通过`new`关键字创建一个对象时...

    GC-powerstation 9.1.2

    在深入理解GC-powerstation 9.1.2之前,我们需要知道GC的基本原理。垃圾收集器的工作方式通常包括标记、清除、复制、压缩等步骤,其目标是在不中断程序运行的情况下,找到并回收不再使用的内存。不同类型的GC策略...

    tomcat GC 优化配置

    #### 二、基本概念与算法介绍 在深入探讨优化配置之前,我们首先了解一些基础的概念和算法: 1. **引用计数(Reference Counting)**:这是一种较早的回收算法,通过增加或减少对象的引用计数来决定是否回收该对象...

    jvm gc

    4. **垃圾收集算法**:主要有四种基本算法: - **标记-清除(Mark-Sweep)**:标记所有活动对象,然后清除未标记的对象。 - **复制(Copying)**:将内存分为两块,每次只使用一块,将活动对象复制到另一块,然后...

    JDK9GC-cheatsheet.pdf

    在这个版本中,HotSpot JVM提供了多种垃圾回收(GC)算法,每种算法都有其特定的适用场景和参数调整策略。下面将详细讨论JDK9中的主要GC类型、相关参数以及调优策略。 1. **GC类型与启用参数**: - **Serial GC**...

    java C#垃圾回收算法分析

    首先,我们要明确垃圾回收的基本概念。在程序运行过程中,会动态分配内存来存储对象。当一个对象不再被引用时,它就变成了垃圾。垃圾回收器的任务就是找到这些无用的对象并释放它们占用的内存空间,以便重新利用。 ...

    GC2155 CSP DataSheet release V1.1.1.pdf

    此外,CRA(Correlated Double Sampling)的更新可能意味着对信号处理和噪声抑制算法的改进,以提高图像质量。 DC参数部分详细列出了传感器在静态工作状态下的电流消耗。Standby Current是指传感器待机时的电流,而...

    深入理解JVM & G1 GC

    下面将详细阐述JVM、GC的基本概念,以及G1 GC的工作原理和调优策略。 首先,Java虚拟机(JVM)是Java程序运行的平台,它负责执行字节码,并提供内存管理、类加载、安全管理等服务。JVM的内存结构主要分为堆、栈、...

    JVM_GC调优

    为了更好地理解JVM_GC调优,我们首先来了解一下JVM的基本组成部分。 1. **类装载器子系统(Class Loader Subsystem)** - 负责读取Java类文件(.class),将其转换为运行时数据结构,这些数据结构在JVM中表示为方法区...

    Gc-Place及操作手册

    通过智能化的算法,Gc-Place可以自动计算每个测试点的最佳位置,确保测试覆盖率最大化,同时兼顾治具的结构紧凑性和生产可行性。 二、操作手册详解 Gc-Place操作手册是用户掌握软件使用的关键资源,涵盖了软件安装...

Global site tag (gtag.js) - Google Analytics