CMS和G1谁是赢家

2024-06-01 16:20
文章标签 cms g1 赢家

本文主要是介绍CMS和G1谁是赢家,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

JVM存在有CMS(Concurrent Mark Sweep)垃圾收集器和G1(Garbage First)垃圾收集器,它们的优缺点对比如下:
一、CMS:
1.特点
1)以获取最短回收停顿时间为目标,适用于对响应性能有较高要求的服务器应用,如Web服务器等。
2)包含4个阶段:初始标记,并发标记,重新标记,并发清除。
初始标记和重新标记需要暂停应用,并发标记和并发清除可以与应用程序并发执行。
3)并发收集。
4)只能在老年代使用。

2.缺点
1)对 CPU 资源敏感、无法处理浮动垃圾、标记——清除算法可能会产生内存碎片。当内存碎片过多时,可能提前触发Full GC,影响性能。
2)牺牲一定的吞吐量。


二、G1
1.特点
1)专门针对拥有多核处理器和大内存的机器的收集器,旨在满足GC响应时间的延迟可控,并尽可能提高程序的吞吐量。
2)将堆划分为多个大小相等的独立区域 Region。
3)优点:并发收集、并行与并发、分代收集、空间整合、可预测停顿。
4)使用标记整理算法。包含4个运行步骤:
初始标记(Initial Marking)
并发标记(Concurrent Marking)
最终标记(Final Marking)
筛选回收(Live Data Counting and Evacuation)
5)整理内存,不会产生内存碎片。
6)停顿时间可控:G1可以根据用户设定的允许的收集停顿时间,优先处理回收价值收益最大的Region。
7)适用于多核、大内存环境,适合服务端应用。能在追求低延迟的同时保证高吞吐量。
8)在新生代和老年代都可使用。

2.缺点
1)有时G1的吞吐量可能不如其他收集器。
 


微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

这篇关于CMS和G1谁是赢家的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1021500

相关文章

垃圾回收器——CMS收集器

CMS[Concurrent Mark Sweep]收集器是一种以获取最短回收停顿时间为目标的收集器。  目前很大一部分的Java应用集中在互联网站或者B/S系统的服务端上,这类应用尤其重视服务的相应速度. 从名字就可以看出,CMS收集器是使用的标记清除算法,它的运作过程相当于前面几种收集器来说更为复杂,整个过程分为四个步骤: 初始标记,标记一下GC Roots能直接关联到的对象,速度很快

CMS收集器配置

HotSpot JVM的并发标记清理收集器(CMS收集器)的主要目标就是:低应用停顿时间。该目标对于大多数交互式应用很重要,比如web应用。在我们看一下有关JVM的参数之前,让我们简要回顾CMS收集器的操作和使用它时可能出现的主要挑战。 就像吞吐量收集器(参见本系列的第6部分),CMS收集器处理老年代的对象,然而其操作要复杂得多。吞吐量收集器总是暂停应用程序线程,并且可能是相当长的一段时间,

uni-CMS:全端开源内容管理系统的技术探索

摘要 本文介绍了uni-CMS,一个基于uniCloud开发的开源内容管理系统(CMS)。该系统旨在帮助开发者快速搭建并管理内容丰富的网站、小程序和移动应用。通过其全端渲染、内容安全检测、广告解锁付费内容以及AI生成文章等特性,uni-CMS不仅提高了开发效率,还促进了内容生产效率的提升和变现能力的增强。本文详细探讨了uni-CMS的技术架构、功能特性以及实施步骤,为开发者提供了一个全面的技术参

比较Freemaker和Nuxt.js作为CMS模板语言的特点

在开发内容管理系统(CMS)时,选择合适的模板语言至关重要。本文将讨论Freemarker和Nuxt.js这两种常用模板语言的特点,以帮助开发者选择最适合其项目需求的工具。 Freemarker的特点 Freemarker是一个基于Java的模板引擎,常用于Java Web应用开发中。以下是Freemarker的主要特点: 1. 易于集成 Freemarker作为Java生态系统的一部分,

易优cms远程调试

易优cms自ThinkPHP5.0版本开始,提供了Socket日志驱动用于本地和远程调试。 Socket调试 只需要在配置文件中设置如下: ‘log’ => [ ‘type’ => ‘socket’, ‘host’ => ‘slog.thinkphp.cn’, //日志强制记录到配置的client_id ‘force_client_ids’ => [], //限制允许读取日志的cl

前后端分离的后台管理系统源码,快速开发OA、CMS网站后台管理、毕业设计项目

那有没有一款软件解-决这种现状呢?答案是肯定的。引入我们的软件——eladmin。 介绍 ELADMIN,一个简单且易上手的 Spring boot 后台管理框架,已发布 Mybatis-Plus 版本,为开发者提供了一个全-面、高-效的解-决方案。 特点 高-效率:前后端完全分离,项目简单可配,内置代码生成器,一键生成前后端代码。 易用性:几乎可用于所有 Web 项目

G1 工业锅炉司炉试题分享及答案

1、【多选题】《工业锅炉能效测试与评价规则》规定:以下(   )采用正平衡法进行测试。(ABC) A、手烧锅炉 B、下饲式锅炉 C、电加热锅炉 D、燃气锅炉 2、【多选题】下列各参数单位中,用于压力的单位如大气压力(   )等。(AD) A、兆帕(MPa) B、兆焦耳(MJ) C、兆瓦(MW) D、千帕(KPa) 3、【多选题】下列哪些因素会使排烟热损失增加(   )。(AB) A、排烟温度升高

帝国CMS二次开发H5手游如何让同一个url 不同的模板

帝国CMS在二次开发《72游戏网》的时候,H5手游如何让同一个url 不同的模板 比如:www.72yy.com/you/11935.html 是H5游戏宣传页 由于很多H5游戏和网页游戏都是需要使用iframe来嵌套使用的 利于自己网站SEO收录优化 那么就再复制一套程序 用二级目录或者二级域名 我这里使用的是二级域名games 那么改造好后就是 games.72yy.com/you

JVM-GC-G1垃圾回收器

JVM-GC-G1垃圾回收器 基本概念 card table card table概念是为了解决新生代对象进入老年代时,在进行新生代扫描的时候会遍历老年代对象的问题。将内存分为多个card,如果在一个老年代card中存在引用新生代对象的对象,则将该区域标记及为dirty card。 CSet(collection set) 用来记录可以被回收的card,即通过算法计算出垃圾多的c

【JVM】CMS 收集器的垃圾收集过程

CMS(Concurrent Mark-Sweep)收集器是Java虚拟机(JVM)中的一种垃圾收集器,它主要面向老年代(Old Generation)的垃圾回收。CMS收集器的目标是最小化垃圾收集的停顿时间,从而提高应用程序的响应性。CMS垃圾收集过程主要分为以下几个阶段: 初始标记(Initial Marking): 这一阶段标记所有直接可达的对象。由于只是标记GC Roots及其直接关联