`

JVM调优总结(三)基本垃圾回收算法

    博客分类:
  • JVM
jvm 
阅读更多
可以从不同的的角度去划分垃圾回收算法:
按照基本回收策略分
引用计数(Reference Counting):
比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。
标记-清除(Mark-Sweep):



此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,把未标记的对象清除。此算法需要暂停整个应用,同时,会产生内存碎片。
复制(Copying):


此算法把内存空间划为两个相等的区域,每次只使用其中一个区域。垃圾回收时,遍历当前使用区域,把正在使用中的对象复制到另外一个区域中。次算法每次只处理正在使用中的对象,因此复制成本比较小,同时复制过去以后还能进行相应的内存整理,不会出现“碎片”问题。当然,此算法的缺点也是很明显的,就是需要两倍内存空间。
标记-整理(Mark-Compact):



此算法结合了“标记-清除”和“复制”两个算法的优点。也是分两阶段,第一阶段从根节点开始标记所有被引用对象,第二阶段遍历整个堆,把清除未标记对象并且把存活对象“压缩”到堆的其中一块,按顺序排放。此算法避免了“标记-清除”的碎片问题,同时也避免了“复制”算法的空间问题。

按分区对待的方式分
增量收集(Incremental Collecting):实时垃圾回收算法,即:在应用进行的同时进行垃圾回收。不知道什么原因JDK5.0中的收集器没有使用这种算法的。
分代收集(Generational Collecting):基于对对象生命周期分析后得出的垃圾回收算法。把对象分为年青代、年老代、持久代,对不同生命周期的对象使用不同的算法(上述方式中的一个)进行回收。现在的垃圾回收器(从J2SE1.2开始)都是使用此算法的。

按系统线程分
串行收集:串行收集使用单线程处理所有垃圾回收工作,因为无需多线程交互,实现容易,而且效率比较高。但是,其局限性也比较明显,即无法使用多处理器的优势,所以此收集适合单处理器机器。当然,此收集器也可以用在小数据量(100M左右)情况下的多处理器机器上。
并行收集:并行收集使用多线程处理垃圾回收工作,因而速度快,效率高。而且理论上CPU数目越多,越能体现出并行收集器的优势。
并发收集:相对于串行收集和并行收集而言,前面两个在进行垃圾回收工作时,需要暂停整个运行环境,而只有垃圾回收程序在运行,因此,系统在垃圾回收时会有明显的暂停,而且暂停时间会因为堆越大而越长。
  • 大小: 11.5 KB
  • 大小: 12.9 KB
  • 大小: 13.5 KB
分享到:
评论

相关推荐

    JVM面试资料:JVM结构、JVM调优、四大垃圾回收算法、七大垃圾回收器

    四大垃圾回收算法:复制算法、标记-清除算法、标记-整理算法、分代收集算法 七大垃圾回收器:Serial、Serial Old、ParNew、CMS、Parallel、Parallel Old、G1 JVM调优:命令行指令,设置堆内存大小的参数

    JVM调优总结1-12.docx

    本文将对 JVM 调优进行总结,涵盖了 JVM 调优的基本概念、垃圾回收算法、分代垃圾回收、典型配置举例、调优方法、反思等方面的内容。 JVM 调优的基本概念 JVM 调优是指通过调整 JVM 的参数和配置来提高 Java 应用...

    JVM调优总结PDF,带原理图

    本文旨在通过对JVM调优的基础概念和常见的垃圾回收算法进行深入剖析,帮助读者更好地理解和掌握JVM调优的关键技术。 #### 二、基础概念与垃圾回收算法 ##### 2.1 引用计数(Reference Counting) 引用计数是一种...

    JVM调优总结(三)基本垃圾回收算法.pdf

    Java虚拟机(JVM)调优是一个复杂...总的来说,JVM调优中的垃圾回收算法选择需根据应用程序的需求、硬件资源和性能指标来决定。理解这些算法的原理和优缺点,可以帮助开发者有效地调整JVM参数,以达到最佳的系统性能。

    JVM调优总结.pdf

    基本垃圾回收算法涉及到如何识别和回收不再使用的对象,而分代垃圾回收则是对堆空间进行分区,以更好地管理不同生命周期的对象。垃圾回收面临的问题包括处理速度、暂停时间和内存碎片等问题。 在典型配置举例部分,...

    JVM调优总结.doc

    "JVM调优总结" ...JVM调优是一种非常复杂的技术,需要我们对JVM的内部机理和垃圾回收算法有深入的理解。只有通过不断的学习和实践,我们才能更好地掌握JVM调优技术,提高Java应用程序的性能和稳定性。

    深入虚拟机---JVM调优总结(摘自网上网上大牛分享).pdf

    基本的垃圾回收算法包括标记-清除算法、复制算法、标记-整理算法以及分代收集算法。分代收集算法是现代JVM采用的主流算法,它基于这样的观察:大多数对象的生命周期都比较短,而存活时间较长的对象比较少。 在垃圾...

    JVM调优总结(4)分代垃圾回收Java开发Java经验技

    二、垃圾回收算法 1. Minor GC:主要针对新生代进行的垃圾回收,速度快,停顿时间短。 2. Major GC/Full GC:涉及老年代的垃圾回收,可能会导致长时间的系统停顿,应尽量避免频繁发生。 三、垃圾回收器介绍 1. ...

    马老师jvm调优实战笔记

    本笔记是马老师的 JVM 调优实战笔记,涵盖了 JVM 的概述、内存结构、堆内存、垃圾回收算法、JVM 参数等方面的内容。 JVM 调优目录 JVM 调优是 JavaVirtual Machine(Java 虚拟机)的优化过程,目的是为了提高 Java...

    马士兵jvm调优笔记.docx

    ### 马士兵JVM调优笔记知识点梳理 ...以上是基于《马士兵JVM调优笔记》文档内容整理的关键知识点总结。通过理解和掌握这些概念与技巧,可以帮助开发者更高效地管理和优化Java应用程序的内存使用情况。

    JVM入门实战/arthas实战/垃圾回收算法/垃圾回收器/jvm内存模型分析

    第四节:垃圾回收算法 1.1标记清除算法 1.2复制算法 1.3 标记整理(标记压缩)算法 第五节:垃圾回收器 1.1Serial/Serial Old收集器 1.2 ParNew收集器 1.3Parallel Scavenge收集器 1.4Parallel Old收集器 1.5CMS...

    Java-JVM调优总结

    ### Java-JVM调优总结 #### 一、引言 在现代软件开发中,Java 作为一种广泛使用的编程语言,其应用程序的性能优化至关重要。而 JVM(Java Virtual Machine)作为 Java 程序运行的基础环境,对其进行合理的调优可以...

    JVM调优,GC算法汇总

    了解并熟练掌握这些GC算法和JVM调优技巧,对于解决性能问题、优化Java应用的运行效率至关重要,同时也是面试中经常被问到的话题。通过实践和理解,开发者可以更好地理解和控制JVM的行为,从而编写出更高效、更稳定的...

    JVM调优.pdf

    本文将基于提供的资料,深入探讨JVM调优的相关知识,包括数据类型的基本概念、堆与栈的区别及其对性能的影响,并重点讨论参数调优策略。 #### 二、数据类型 在Java虚拟机中,数据类型主要分为两大类:基本类型和...

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

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

    JVM调优总结:调优方法.docx

    - **垃圾回收监控**:长期监控GC行为,判断当前的垃圾回收算法是否适合应用需求。 - **对象信息和引用情况**:查看对象数量、类型和引用关系,识别潜在的内存泄漏。 #### 2. 线程监控 - **线程信息**:了解系统中的...

Global site tag (gtag.js) - Google Analytics