ZGC是一种垃圾回收器,由Oracle开发,主要用于Java虚拟机(JVM)中,以下是其相关介绍

特点###

低延迟:ZGC采用了多种优化技术,如染色指针、读屏障等,能够实现几乎停顿时间为零的垃圾回收,大大降低了应用程序的停顿时间。

高吞吐量:在保证低延迟的同时,ZGC也能维持较高的吞吐量,不会因为垃圾回收而过多地影响应用程序的性能。

可扩展性:能够处理大内存,支持TB级别的堆内存,随着内存的增加,其性能下降不明显。

工作原理

并发标记:与应用程序线程并发执行,标记出堆中的存活对象。

并发预备重分配:为即将进行的内存重分配做准备,计算出哪些内存区域需要进行重分配。

并发重分配:将存活对象从旧的内存区域复制到新的内存区域,也是与应用程序线程并发执行,减少停顿时间。

并发清理:清理不再使用的内存区域,释放内存空间。

适用场景

对延迟要求高的应用:如金融交易系统、实时游戏等,ZGC的低延迟特性可以保证系统的响应速度,提高用户体验。

大内存应用:对于需要处理大量数据、占用大量内存的应用,ZGC能够有效地管理大内存,避免因垃圾回收导致的长时间停顿。

有了解过ZGC吗的更多相关文章

  1. java 11 ZGC(可伸缩,低延迟的gc)

    ZGC, A Scalable Low-Latency Garbage Collector(Experimental) 可伸缩,低延迟的gc ZGC, 这应该是JDK11最为瞩目的特性, 没有之一. ...

  2. [No0000196]一文读懂Java 11的ZGC为何如此高效

    导读:GC是大部分现代语言内置的特性,Java 11 新加入的ZGC号称可以达到10ms 以下的 GC 停顿,本文作者对这一新功能进行了深入解析.同时还对还对这一新功能带来的其他可能性做了展望.ZGC ...

  3. 一文了解JVM全部垃圾回收器,从Serial到ZGC

    <对象搜索算法与回收算法>介绍了垃圾回收的基础算法,相当于垃圾回收的方法论.接下来就详细看看垃圾回收的具体实现. 上文提到过现代的商用虚拟机的都是采用分代收集的,不同的区域用不同的收集器. ...

  4. JDK11 | 第七篇 : ZGC 垃圾收集器

    一.简介 Java 11包含一个全新的垃圾收集器--ZGC,它由Oracle开发,承诺在数TB的堆上具有非常低的暂停时间. 在本文中,我们将介绍开发新GC的动机,技术概述以及由ZGC开启的一些可能性. ...

  5. ZGC,一个超乎想象的垃圾收集器

    Z Garbage Collector,即ZGC,是一个可伸缩的.低延迟的垃圾收集器,主要为了满足如下目标进行设计: 停顿时间不会超过10ms 停顿时间不会随着堆的增大而增大(不管多大的堆都能保持在1 ...

  6. jdk11 eclipse下开启ZGC

    平台支持 ZGC目前只在Linux/x64上可用,如果有足够的需求,将来可能会增加对其他平台的支持. 对的,目前只支持64位的linux系统. -_-' eclipse.ini配置: -XX:+Unl ...

  7. ZGC深入学习

    ZGC简介 本次调研目标选取的是jdk11(long-term support)下首次亮相的zgc. zgc介绍简单翻译了zgc main page:ZGC简介 另外参考hotspot garbage ...

  8. ZGC介绍

    zgc是一款可拓展的低时延,为实现以下几个目标而诞生的垃圾回收器: 停顿时间不超过10ms 停顿时间不会导致堆大小增长 堆大小范围可支持几G到几T 再看一下zgc的标签: region-based ( ...

  9. ZGC gc策略及回收过程-源码分析

    源码文件:/src/hotspot/share/gc/z/zDirector.cpp 一.回收策略 main入口函数: void ZDirector::run_service() { // Main ...

  10. Java11新特性 - Epsilon GC和ZGC

    Java11中新增了两个GC,Epsilon GC和ZGC. Epsilon垃圾收集器 A NoOp Garbage Collector 没有操作的垃圾收集器 JDK上对这个特性的描述是:开发一个处理 ...

随机推荐

  1. Java 使用ListUtils对List分页处理

    背景分析   工作中,经常遇到需要用Java进行分页处理数据,例如把1000万条Excel数据写入MySQL数据库,如果把这1000w数据一股脑的丢给MySQL,保证把数据库玩完,故需要批量写入,如每 ...

  2. Go与C/C++ 互相调用

    A. Go调用C 1.Go调用C:在go文件里调C(以下代码中除了开头的注释之外,其他注释不可删除) /* * go 和 C 互调用程序 */ package main /* int Add( int ...

  3. 第七章: SEO与渲染方式

    第7章: SEO与渲染方式 在现代Web开发中,JavaScript扮演着越来越重要的角色.然而,JavaScript的广泛使用也为搜索引擎优化(SEO)带来了新的挑战.本章将深入探讨JavaScri ...

  4. Linux系统split对tar文件进行分片和压缩

    一.简单说明 在实际的使用场景中,我们可能对压缩过的tar包上传到某个服务器或者应用,会涉及超出服务器限制的文件大小.这里我们可以对此文件进行压缩.分片.合并. 二.实际操作 2.1 压缩包分片 这里 ...

  5. Java线程池详解:高效并发编程的核心利器

    Java线程池详解:高效并发编程的核心利器 在高并发的Java应用中,频繁创建和销毁线程是非常消耗系统资源的操作.线程池作为Java并发编程的核心组件,不仅能够复用线程.降低系统开销,还能有效控制并发 ...

  6. ArkUI-X通过Stage模型开发Android端应用指南(一)

    简介 本文介绍将ArkUI框架扩展到Android平台所需要的必要的类及其使用说明,开发者基于OpenHarmony,可复用大部分的应用代码(生命周期等)并可以部署到Android平台,降低跨平台应用 ...

  7. 搭建一个图片变视频的AI(二):开始搭建

    前一章介绍了模型相关,现在开始搭建. 一:下载,解压ComfyUI https://github.com/comfyanonymous/ComfyUI 上面链接中也有安装过程,可以参考. 也可以直接进 ...

  8. Cloud Run Job(google作业) 处理耗时任务

    最近使用google cloud的一些服务处理一些事,使用了Cloud Scheduler定时发送http请求大Cloud Function,让Cloud Function定时处理我的事.这个时候会有 ...

  9. C# Newtonsoft.Json null 转空值{} 把对象null转换{}为JSON字符串

    /// <summary> /// 把对象null转换{}为JSON字符串 /// </summary> /// <param name="o"> ...

  10. Xamarin.Android C#layout_weight错误:必须指定一个单位,例如“ px”

    https://mlog.club/article/5879658 解决办法: 关闭VS 删除解决方案根目录中的.vs文件夹 开始VS