首页 > 其他分享 >G1垃圾回收器特性

G1垃圾回收器特性

时间:2023-10-20 15:01:27浏览次数:31  
标签:G1 收集器 停顿 回收 时间 垃圾 CMS CPU

G1具备以下几种特性

1、并行与并发

G1能充利用CPU、多核环境下的硬件优势,使用多个CPU(CPU或者CPU核心)来缩短Stop-The-World停顿时间。G1收集器可以通过并行和并发的方式让应用程序继续执行。

2、分代收集

虽然G1可以不需要其他收集器配合就能独立管理整个GC堆,但是还是保留了分代的概念。

3、空间整合

与CMS的标记-清理算法不同,G1从整体来看是基于标记-整理算法实现的收集器;从局部上看是基于复制算法实现的。

4、可预测停顿

这是G1相对于CMS的另一个大优势,降低停顿时间是G1和CMS共同关注点,但G1除了追求低停顿外,还能建立可预测的停顿时间模型,能让使用者明确指定在一个长度为M毫米的时间片段(通过参数-XX:MaxGCPauseMills)内完成垃圾收集。

默认的停顿目标为两百毫米,一般来说,回收阶段占到几十到一百甚至接近两百毫米都很正常,但如果把停顿时间调得非常低, 譬如设置为二十毫秒, 很可能出现的结果就是由于停顿目标时间太短, 导致每次选出来的回收集只占堆内存很小的一部分, 收集器收集的速度逐渐跟不上分配器分配的速度, 导致垃圾慢慢堆积。 很可能一开始收集器还能从空闲的堆内存中获得一些喘息的时间, 但应用运行时间一长就不行了, 最终占满堆引发Full GC反而降低性能, 所以通常把期望停顿时间设置为一两百毫秒或者两三百毫秒会是比较合理的。

标签:G1,收集器,停顿,回收,时间,垃圾,CMS,CPU
From: https://blog.51cto.com/u_11315052/7951316

相关文章

  • CF1867C Salyg1n and the MEX Game
    CF1867CSalyg1nandtheMEXGame简单博弈论题。设给出序列的\(\text{mex}\)为\(x\),那么Alice第一次操作时加入\(x\)一定是最优的。此时显然有\(\text{mex(s)}\gex\)。因为如果加入的数\(y<x\),此时数列中有不小于\(2\)个\(y\)。如果Bob删掉了一个数,那么Al......
  • Shell脚本实现类Windows回收站
    Shell脚本实现类Windows回收站目录drm伪命令2参数2示例2命令安装3脚本说明3脚本安装3执行bashinstall.sh安装4再次执行bashinstall.sh进行对drm操作4命令使用5查看帮助信息5将文件放入回收站5创建测试文件5指定自动清理的时间和过程5删除文件5删除多个文件和目录6......
  • 关于实现垃圾分类检测系统的选题报告
    关于实现垃圾分类检测系统的选题报告目录关于实现垃圾分类检测系统的选题报告一、项目背景、意义及目标:(一)背景:(二)意义:(三)目标:二、可行性分析:(一)规模及难度:(二)人员:(三)成本预算:(四)时间要求:(五)风险:三、项目计划:(一)软件开发模型:瀑布模型(二)时间安排(三)人员分工:一、项目背景、意义及目标:(一)背景......
  • C# 怎么快速回收Dictionary中不再使用的内存
    最近发现存在Dictionary的内存需要过比较久的时间才会释放,尝试以下的方式可以快速实现内存释放直接上代码varbytes=GetFileBytes(fileName);_bytesDict=newDictionary<int,byte[]>();_bytesDict.Add(0,bytes);byte......
  • 对于ogg19 mysql 中如果mysql中存在json数据类型,进程会abend问题报错信息 OGG-00774
    对于ogg19mysql是不支持json的这个数据类型还是比较常见的,这个数据类型是在ogg21才开始支持,对于这种报错可以打补丁进行修复Bug29998662:MySQLExtractAbendsWithoutErrorwithJSONdatatypesinbinlog 参考自:MySQLExtractAbendsWithoutErrorWithJSONDataT......
  • 制作自动清理垃圾的小程序
    我们的电脑,包括台式机和笔记本,尤其是window系统,在使用一段时间之后,会自动产生大量系统垃圾文件,最终严重影响电脑的运行速度。今天小编教大家简单制作一个电脑关机自动清理系统垃圾文件的程序,每次关机就会自动清理系统垃圾文件,来保持电脑内部的清洁,非常实用!一、制作脚本文件1.在......
  • .Net7自定义GC垃圾回收器
    1.前言CLR和GC高度耦合,.Net7里面分离CLR和GC,则比较容易实现这件事情。本篇来看下,自定义一个GC垃圾回收器。2.概述这里首先演示下自定义GC垃圾回收后的效果。1.下载Custom.dll2.找到当前.Net目录,比如这里的7.0.10C:\ProgramFiles\dotnet\shared\Microsoft.NETCore.App\7.0.1......
  • 【Vagrant】 Build PG15 on rhel8
    vagrant创建一套singlePG15,同时创建一个新的数据库db_pg15(密同)Vagrant.configure("2")do|config|vms=[#{name:"app01",box:"centos-8",hostname:"app01",ip:"192.168.33.11"},#{name:"gitla......
  • 21207328-吴义隆-blog1
    一、前言:三次pta题目集知识点丰富,包括了一开始如何创建Java基本形式,接着相关的命名及其使用,以及后面的知识结合。并且三次题目集的题量还算中规中矩,一开始,较为基础,题目多一点,方便学生进行学习和理解;接着进阶一点,难度提升的同时,适当减少了习题量;到最后,基本上题目以第二题的课......
  • BLOG1
    java题目集1-3总结一.前言对于第一次题目集,共有九道题目,分别是身体质量指数(BMI)测算、长度质量计量单位换算、NCHU_奇数求和、NCHU_房产税费计算、游戏角色选择、NCHU_学号识别、NCHU_巴比伦法求平方根近似值、二进制数值提取、判断三角形类型。以上这九道题目还是比较简单的,其......