首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >什么时候选择SerialGC,ParallelGC而不是CMS,G1?

什么时候选择SerialGC,ParallelGC而不是CMS,G1?
EN

Stack Overflow用户
提问于 2019-02-10 03:30:22
回答 3查看 37.6K关注 0票数 37

在Java9中,G1 GC是默认的垃圾收集器。到目前为止,我听说过有些人更喜欢CMS垃圾收集器 over G1GC,因为它看起来不稳定,并且有一些令人讨厌的bug。

ParallelGC发生了什么事(这些天没有嗡嗡声)?有没有比CMS/G1更喜欢ParallelGC的用例?

另外,是否存在SerialGC可以执行所有这些并行收集器的情况?

EN

回答 3

Stack Overflow用户

发布于 2019-02-10 10:53:05

串行收集器

主要用于单cpu机.

算法:

它使用单个线程来处理堆,并在任何gc期间执行停止世界暂停.把它当成玩具吧。

这对于客户机类计算机( windows或单cpu计算机上的32位jvm )来说是默认的。

平行收集器

算法:

它使用多个gc线程来处理堆,并在任何gc期间执行停止世界暂停.

<= Java 8,这是服务器类计算机(多cpu类unix机器或任何64位jvm)的默认设置。

CMS收集器

它旨在消除与并行和串行收集器的完整gc相关联的长暂停。

算法:

它使用一个或多个gc线程定期扫描老一代,并丢弃未使用的对象,暂停时间很短,但占用更多的cpu时间。

警告:从14开始,删除了

G1收集器

它是低暂停/服务器风格的gc,主要用于大型堆(> 4Gb)。

算法:

  • 类似于CMS,它使用多个后台gc线程来扫描和清除堆。
  • 它把老一代分成几个部分,可以从一个部分复制到另一个部分来清洗老一代。 因此,获得碎片的可能性较小。

自Java以来,这是服务器类计算机(多cpu类9或任何64位jvm)的默认设置。

为什么使用G1作为缺省值?

主要原因是减少gc暂停时间,尽管总体吞吐量可能会降低。

票数 28
EN

Stack Overflow用户

发布于 2019-02-11 19:53:54

您可以阅读文档Java平台,标准版HotSpot虚拟机垃圾收集优化指南-Java 9

  • 串行收集器 它最适合于单处理器机器,因为它不能利用多处理器硬件,尽管它对于具有小数据集(高达100 MB)的应用程序非常有用。
  • 并联收集器 并行收集器也称为吞吐量收集器,它是类似于串行收集器的分代收集器。串行收集器和并行收集器之间的主要区别是,并行收集器有多个线程,用于加速垃圾收集。并行收集器适用于在多处理器或多线程硬件上运行的具有中等到大型数据集的应用程序。如果您不关心暂停时间,而更喜欢吞吐量,那么这个收集器将是最好的。
  • 主要并发收集器(CMS)

在Java9中不推荐这个收集器。

此收集器适用于喜欢更短时间的垃圾收集暂停并能够与垃圾收集共享处理器资源的应用程序。

  • G1垃圾收集器--这种服务器风格的收集器用于具有大量内存的多处理器计算机。它以很高的概率满足垃圾收集暂停时间目标,同时实现高吞吐量。

摘要:

  • 如果应用程序有一个很小的数据集(最多可达100 MB),那么选择带有-XX:+UseSerialGC选项的串行收集器。
  • 如果应用程序将在单个处理器上运行,并且不需要暂停时间,那么选择带有选项-XX:+UseSerialGC的串行收集器。
  • 如果(a)峰值应用程序性能是第一优先级,并且(b)不需要暂停时间或暂停一秒或更长的时间是可以接受的,那么让VM选择收集器或使用-XX:+UseParallelGC选择并行收集器。
  • 如果响应时间比总体吞吐量更重要,垃圾收集暂停必须保持在大约1秒以内,那么选择一个具有-XX:+UseG1GC或-XX:+UseConcMarkSweepGC的并发收集器。

问答:

  1. 我听说有些人更喜欢CMS垃圾收集器而不是G1GC,因为它看起来不稳定,并且有一些讨厌的bug。

对于大多数应用程序来说,G1收集器足够稳定。我在许多应用程序中都使用了G1收集器,它们都工作得很好。如果您可以将java9升级到Java11,那么它工作得更好,bug也更少。

  1. 有没有比CMS/G1更喜欢ParallelGC的用例?

是。有些应用程序需要更多的吞吐量,并且不关心使用并行收集器的暂停时间,这样会更好。例如,批处理任务、脱机作业、计算任务。

  1. 另外,是否存在SerialGC可以执行所有这些并行收集器的情况?

如果您在嵌入式系统上运行JVM,或者使用一个或两个CPU的系统,那么串行GC会更好。

最后,G1和CMS:在大多数情况下,G1可以代替CMS。在这种情况下,最好使用G1:

  1. 你有一大堆,就像16G。暂停时间与堆size.On之间存在正相关,相反,G1是增量收集器。
  2. 您有严格的暂停时间要求,并希望更多的可控暂停时间。比如,你想要暂停时间<=10ms。
票数 15
EN

Stack Overflow用户

发布于 2019-12-23 03:45:14

使用系列:

  • 只有1个1CPU可用,没有暂停要求-小型JVM存在于单机上(超过1CPU数量)-小型活动数据集(小于100 no )

使用并行:

  • 应用程序性能比低暂停时间更重要的非交互批处理应用程序
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54615916

复制
相关文章
域名是什么?域名有什么作用?
我们在平时的使用互联网的过程中,经常会进行浏览网站,但是我们在浏览网站的时候却没有留意到的一点是经常我们们需要输入域名才能够访问这个网站。而我们在百度上之所以可以直接进行搜索内容的原因是因为这个域名的IP地址已经被百度完成输入了。但是域名的诞生是为了什么?域名又有什么样的作用呢?
用户8739990
2021/08/13
22.1K0
怎么申请网页域名 域名有什么作用
随着互联网的发展,很多企业,哪怕是一些小小的创业者都需要搭建一个能凸显企业形象的官网。简单的说:这个网站就是公司的门头,既能介绍公司的优势跟发展前景也能展示公司的相关产品,让用户进行了解后更愿意进行沟通谈合作。那么怎么申请网页域名?
用户8739990
2021/08/06
15K0
怎么申请网页域名 域名有什么作用
域名邮箱如何注册 域名邮箱有什么作用
大家日常使用的邮箱,其实也是存在域名的,只是这个域名是邮箱公司注册的,大家都不知道。平时用到的邮箱也是在该邮箱公司旗下的域名创建的,因此大家在日常中收发邮箱也是这个公司域名下进行的。既然邮箱公司能注册域名,那企业也能注册。下面就给大家讲讲域名邮箱如何注册?
用户8739990
2021/08/06
13.4K0
域名邮箱如何注册 域名邮箱有什么作用
io是什么域名 域名对于网址的作用
现在互联网已经和人们的正常生活紧密地联系在了一起,如果在日常生活中人们离开了互联网,那么几乎就是寸步难行,而且由于互联网的不断发展,现在大家可以在家里就能够完成办公任务。但是很多人对于互联网并不是特别的了解,大家在登录网站的时候通常后面会有域名。很多人对于io是什么域名感到非常的疑惑,在接下来的内容里就给大家解决这一个问题。
用户8715145
2021/08/17
12.2K0
到期域名怎么抢注,域名有什么作用吗
域名相信大家都不会陌生,它也被称之为网域,简单来说就是通往网站的路径,现在很多的企业都会有自己的网站域名,因为它可以引导网上用户访问网站,而很多好的域名是需要抢注的。那么,到期域名怎么抢注?
用户8739990
2021/07/23
11K0
到期域名怎么抢注,域名有什么作用吗
网址域名是什么 域名对于网站的作用
当我们在访问网站的时候,经常能够看见网址和域名,我们都知道域名是比较简单的,尤其是和IP地址比较起来,域名更受人们的欢迎,大家知道网址域名是什么吗?
用户8715145
2021/08/20
7.9K0
域名地址是什么?域名有哪些作用?
对于网络技术人员来讲,他们都会对域名的概念感到熟悉,域名相当于网站的名字,网友需要通过域名才能够访问网站。域名地址是什么?域名的作用有哪些?怎样选择域名?
用户8715145
2021/08/20
6.1K0
域名的作用是什么 英文域名是什么
如果我们拥有一家企业,就会有不少的人建议注册域名,现在很多的企业基本上都会拥有域名,域名也变得越来越常见了,有时候在别人发的名片上面就有域名,但是很多人却并不知道域名的作用是什么。
用户8715145
2021/08/20
14.5K0
购买域名去哪里呢?注册域名有什么作用?
域名也叫网域,是某一台计算机或者是计算机组的名称,域名对于我们来说是比较重要的,如果没有域名的话,我们就无法正常访问网站,所以企业和个人如果想要在互联网上面工作的话,一般都是需要购买一个域名的。但是很多朋友都不知道购买域名去哪里,因为域名是一个全新的领域,那么,购买域名去哪里呢?
用户8715145
2021/08/27
15.5K0
网络域名是什么 域名对于企业有什么作用
很多人在创建网站的时候,对于域名并不了解,如果不了解域名,我们是没有办法创建网站的,多了解一些域名的知识,可以让大家在面对问题的时候不迷茫,我们将在下面为大家介绍网络域名是什么。
用户8715145
2021/08/27
4.6K0
域名查询如何操作?域名的作用是什么?
域名一词在科技领域十分常见,一些外行人士对其不太了解,其实简而言之域名由一系列名字构成,这些名字用点进行分隔,将网络上某台或者一组计算机串联起来,人们在进行数据传输的时候,可以用它来标记计算机具体的电子方位,为人们带来很大的便利,许多人会非常好奇域名查询如何操作?域名的作用是什么?今天就来进行具体介绍。
用户8739990
2021/07/23
13K0
域名查询如何操作?域名的作用是什么?
如何申请域名邮箱?域名邮箱的作用有哪些?
大家或多或少懂得在创建网站前先申请域名,不少人已经在使用过域名,惟独对域名邮箱比较陌生,域名邮箱作为域名的一小部分,其实功能多和操作方便,非常值得推荐使用,所以,我们先来了解下如何申请域名邮箱?域名邮箱的作用有哪些?
用户8739990
2021/08/06
19.4K0
如何申请域名邮箱?域名邮箱的作用有哪些?
域名什么意思?域名的作用是什么?
我们访问网站的时候,基本都是通过域名云访问的网站。域名什么意思呢?域名在网站中所起到的作用又是怎样的呢?其实我们访问网站的时候,都是通过ip地址访问的,只是因为域名解析的原因,将域名解析成了机器可以识别的ip地址就可以了,而这个过程是通过机器自动来完成的。
用户8739990
2021/08/13
8.8K0
网站域名怎么看 网站域名有什么作用
通常情况使用网站的用户,都会记录一些网址等东西。其实网址就是网站域名的一种理解,它包括着很多的种类,有公司、个人或者是国家等申请的域名,同时还有这不同级别的域名类型,那么它是用来干什么的呢?又怎么浏览?网站域名怎么看?
用户8739990
2021/07/23
16.3K0
网站域名怎么看 网站域名有什么作用
Flash在DirectX中的绘制
这里使用的是之前我说过的OLE控件在Direct3D中的渲染方法, 自己不进行swf的解析, 这不现实. 前提条件: COM编程, OLE编程, DirectX编程, ActionScript/Flash(可选). 创建一个ShockwaveFlashObjects::IShockwaveFlash的对象 实现一个IOleClientSite来做为IShockwaveFlash的容器 绘制 通过OleDraw来把GDI的像素数据绘制到DC上(IShockwaveFlash是一个IViewObjec
逍遥剑客
2018/05/23
1.9K0
什么是域名备案啊?域名备案有什么作用吗?
网络时代使企业的经营模式也产生了变化,由线下销售为主变为线上销售为主,线上销售主要通过公司网站进行,因此大部分公司都拥有自己的网站,一方面可以进行产品宣传,另一方面还能够提升公司形象。想要访问公司网站,一般都需要通过域名进行访问,公司除了需要挑选一个优质域名外,还需要对域名进行备案,那么什么是域名备案?域名备案有什么作用?
用户8715145
2021/08/19
37.8K0
网站建设怎么选域名?好的域名有哪些作用?
众所周知建设网站需要经过注册域名、申请空间以及制作网页和上传测试等多个环节,域名也可以看成网站的名称,网站域名都具有独一无二的特点,消费者、客户会通过输入网站域名,来登录和访问浏览公司网站,网站建设怎么选域名?好域名有什么作用?
用户8715145
2021/11/10
6.3K0
域名邮箱是什么意思,域名邮箱有什么作用
很多人虽然已经有了域名,而且平常已经在使用了,但是却对于域名邮箱不太了解,但其实域名邮箱作用非常的多,多了解一些关于域名邮箱的知识,可以帮助大家更好地使用域名,下面我们就将为大家介绍有关域名邮箱的内容。
用户8739990
2021/07/23
12.2K0
域名邮箱是什么意思,域名邮箱有什么作用
企业邮箱域名是什么 域名对企业的作用
相信大家都知道域名,我们很多人都会通过域名来访问网站,域名对于企业来说也非常的重要,而且我们现在生活在一个网络发达的时代,域名就必不可少了。大家知道企业邮箱域名是什么吗?
用户8739990
2021/08/13
8.4K0
点击加载更多

相似问题

在blogspot中上传Flash文件

10

Flash设置在firefox上不起作用

13

Flash透明背景在Mac上不起作用

10

没有WWW的域名在AWS上不起作用

153

Flash文件下载在服务器上不起作用

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文