G1 GC核心原理、执行流程
创始人
2024-04-11 03:45:00
0

今天让我们从0开始了解G1 GC。

在开始之前,我们先探讨下为什么我们学习G1 GC。 要学习一些新知识,每个人可能都有不同的目的目标。 我认为学习G1GC对于Java工程师有如下收益。

  1. 成为更好的Java开发工程师,在遇到服务性能问题、GC问题时,能够通过了解到的G1知识快速定位、解决相关问题

  2. 在面试时GC问题也是常问的知识点,G1GC作为大多数工程师了解不是很多的知识领域,如果稍微深入理解,就能形成更大的领先优势,无论是被面试还是面试别人

  3. 学习G1中的优化技巧、原理,有机会能够举一反三应用到平时的工作设计中

  4. 满足自己的好奇心,了解一项事物背后的运行流程。

目前大多数人对于G1 GC的知识理解可能来自G1 GC论文、oracle官方文档、《深入理解Java虚拟机》书籍、网络文章等。 而其中一些内容可能已经过时或描述不全面,本文会尽量给大家带来更准确、全面的G1理解。

G1核心设计思路介绍

G1GC是Garbage First Garbage Collection的简写,G1读作G one或G 一都是可以的。 在jdk9之后的版本,G1已经成为默认的垃圾回收器。

在G1出现之前,服务端Java服务普遍使用CMS(并发标记清除回收器),在暂定时间、吞吐量等方面G1相比CMS有全面的优化, 所以jdk9之后CMS也已经从jdk代码中移除不能再使用。

那么CMS遇到了哪些问题呢?

这要从GC暂停时间开始说起,在JVM运行时,除了有mutator应用线程(我们写的业务代码)执行,还有JVM内部的一些代码在运行就包括了GC的线程。 mutator是GC领域对于应用代码的称呼

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...