首页 > 其他分享 >JVM专题之G1垃圾收集器上

JVM专题之G1垃圾收集器上

时间:2024-07-04 10:56:31浏览次数:17  
标签:compact G1 收集器 GC JVM collections CMS

JDK8为什么不用CMS做为默认垃圾收集器呢


1.CMS单线程或者双线程情况下效率很低
2.CMS会并发失败
3.CMS可中止的预处理会导致极限5S停顿4.并发失败进入 foregroud还会导致进入Full GC,全局MSC整理5.CMS吞吐的设计并不是很优秀

G1的目的:

GarbageFirst,也就是垃圾优先原则,也就是空间方面的关注点。同时照顾到停顿时间以及吞吐量。 


Open.JDK官网:http://openjdk.java.net/jeps/307 
The G1 garbage collector is designed to avoid full collections, but when the concurrent collections can't eclaim memory fast enough a fall back full GC will occur. The current implementation of the full GC for Gl uses a single threaded mark-sweep-compact algorithm. We intend to parallelize the 
mark-sweep-compact algorithm and use the same number of threads as the Young and Mixed 
collections do. 
翻译:G1垃圾收集器的设计目的是避免完全回收,但是当并发收集不能足够快地回收内存时,就会发生完全回收GC.G1的完整GC的当前实现使用单线程mark-sweep compact算法。

.mahbin.COn 
G1的特点:

gaebage First 
内存空间的重新定义
更短的停顿时间要多短就多短
某种程度上去解决空间碎片

标签:compact,G1,收集器,GC,JVM,collections,CMS
From: https://blog.csdn.net/zgy_boke/article/details/140172777

相关文章

  • JVM专题之G1垃圾收集器下
    索引(记录)的源码的工作流程图如下:CSet(CollectionSet回收集合)收集集合(CSet)代表每次GC暂停时回收的一系列目标分区。在任意一次收集暂停中,CSet所有分区都会被释放,内部存活的对象都会被转移到分配的空闲分区中。因此无论是年轻代收集,还是混合收集,工作的机制都是一致的。年轻......
  • 学习JVM需要掌握这些技能
    最近,一直有小伙伴让我整理下关于JVM的知识,经过十几天努力算是整理出来了。希望对大家有所帮助。JDK是什么?JDK是用于支持Java程序开发的最小环境。Java程序设计语言Java虚拟机JavaAPI类库JRE是什么?JRE是支持Java程序运行的标准环境。JavaSEAPI子集Java虚拟......
  • 面试官:JVM调优,主要针对是哪一个区域?JVM内存结构是怎样的?
    作为一个Java程序员,在日常的开发中,不必像C/C++程序员那样,为每一个内存的分配而操心,JVM会替我们进行自动的内存分配和回收,方便我们开发。但是一旦发生内存泄漏或者内存溢出,如果对Java内存结构不清楚,那将会是一件非常麻烦的事情!本文笔者将为大家详解Java内存结构。面试tips聊聊......
  • JVM8为什么要增加元空间 ?
    持久代持久代的大小为什么移除持久代?元空间元空间的特点:持久代持久代中包含了虚拟机中所有可通过反射获取到的数据,比如Class和Method对象。不同的Java虚拟机之间可能会进行类共享,因此持久代又分为只读区和读写区。JVM用于描述应用程序中用到的类和方法的元数据也存......
  • Java JVM——11. 执行引擎
    1.概述执行引擎属于JVM的下层,里面包括:解释器、即时编译器、垃圾回收器。执行引擎是Java虚拟机核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而......
  • 谈谈JVM内存区域的划分,哪些区域可能发生OutOfMemoryError?(jvm)
    Java虚拟机(JVM)在运行时将内存划分为多个区域,以便有效管理和分配内存资源。这些内存区域包括堆(Heap)、方法区(MethodArea)、程序计数器(ProgramCounterRegister)、虚拟机栈(JVMStack)和本地方法栈(NativeMethodStack)。每个区域的作用和管理方式有所不同,某些区域在特定情况下可能......
  • Java_JVM:垃圾收集算法
    GC最基础的算法有三种:标记-清除算法复制算法标记-压缩算法我们常用的垃圾回收器一般都采用分代收集算法。“标记-清除”(Mark-Sweep)算法,如它的名字一样,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。“复制”......
  • Java高手的30k之路|面试宝典|精通JVM(二)
    JVM基本结构类加载子系统:负责将.class文件加载到内存中,并进行验证、准备、解析和初始化。运行时数据区:包括堆(Heap)、方法区(MethodArea)、Java栈(JavaStack)、本地方法栈(NativeMethodStack)和程序计数器(ProgramCounterRegister)。执行引擎:包括解释器(Interpreter)、即时编译器......
  • 面试题-Java垃圾回收之垃圾收集器
    1.基础知识(1)知识点补充Stop-the-World:发生时,除了GC所用的线程之外,所有的线程都处于等待状态Safepoint:可达性分析算法时,必须保证在某个快照点进行。分析的过程中对象的引用关系不会发生变化!JVM的运行模式:Java-version就能看到Server模式:启动慢,但是进入稳定期......
  • 【JVM】Tomcat 的类加载机制
    Tomcat是一个开源的JavaServlet容器,用于运行JavaWeb应用程序。它的类加载机制相对复杂,因为它需要在支持多种应用的同时保持隔离性和灵活性。以下是Tomcat类加载机制的详细描述。Tomcat类加载器的层次结构Tomcat采用了一种层次化的类加载器结构,以便在不同的应用......