问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

生产中 java 垃圾回收为什么不用g1

发布网友 发布时间:2022-04-27 04:54

我来回答

2个回答

懂视网 时间:2022-04-14 23:53

Oracle正在考虑将 JEP 248 包含到 Java 9的JEP列表 中,即在服务器配置中将G1作为默认垃圾收集器。该决定在Java社区引发了一些争

Oracle正在考虑将 JEP 248 包含到 Java 9的JEP列表 中,即在服务器配置中将G1作为默认垃圾收集器。该决定在Java社区引发了一些争论,许多人都认为并发标记和扫描(CMS)收集器可能更合适。

如果该决定付诸实施,那么G1将取代并行垃圾收集器成为服务器配置的默认选项。正如Oracle在 内存管理白皮书 中描述的那样,并行垃圾收集器的设计初衷是,通过不常发生(但可能时间比较长)的Stop-The-World(STW)中断最大化应用程序吞吐量。并行 垃圾收集器将消耗的总计算时间最小化,长远来看,其破坏性更小,因此可以提供更好的整体性能。该收集器非常适合对响应时间要求不高的应用程序,比如,批处 理。

另一方面,正如前G1性能负责人Monica Beckwith先前在InfoQ上阐述的那样,Garbage First(G1)的设计初衷是,以更高的计算成本为代价最小化STW中断时间。G1更适合于低延迟应用程序,如Web服务器,这也体现了Stefan Johansson在JEP中所描述的动机:

通常来说,限制GC中断时间比最大化吞吐量更重要。对大部分用户而言,,与面向吞吐量的收集器相比(如并行垃圾收集器),切换到中断时间短的垃圾收集器(如G1),可以获得更好的整体体验。

这里出现了争议。HotSpot因为同样的目的引入了CMS,而实际上,按照 ,CMS“设计用于更希望缩短垃圾收集中断时间的应用程序,以及在运行时可以与垃圾收集器共享处理器资源的应用程序”。许多公开的基准测试都表明,在内存占用相对较小的应用程序中,CMS的性能往往要胜过G1,这与 Oracle对G1的描述 一致,即G1适用于堆大小为6GB及以上的服务器应用程序。

在最近的一次交流中,性能专家Kirk Pepperdine特别指出,谷歌已经向CMS贡献了若干改进,但它们从没有出现在HotSpot中。他还补充说,虽然长远看G1可能是更好的选择,但Oracle的设计方案已经剥夺了社区从CMS获得更好体验的权力。

查看英文原文: Oracle Proposes G1 as the Default Garbage Collector for Java 9

本文永久更新链接地址:

热心网友 时间:2022-04-14 21:01

垃圾回收是Java语言的一大特性,方便了编程,是以消耗性能为代价的,Java语言对内存的分配管理是通过JVM内部机制决定的。
Java虚拟机中有个称之为垃圾回收器的东西,实际上这个东西也许真正不存在,或者是已经集成到JVM中了,但这无关紧要,仍然可以称为为垃圾回收器。
垃圾回收器的作用是查找和回收(清理)无用的对象。以便让JVM更有效的使用内存。
垃圾回收器的运行时间是不确定的,由JVM决定,在运行时是间歇执行的。虽然可以通过System.gc()来强制回收垃圾,但是这个命令下达后无法保证JVM会立即响应执行,但经验表明,下达命令后,会在短期内执行你的请求。JVM通常会感到内存紧缺时候去执行垃圾回收操作。
垃圾回收过于频繁会导致性能下降,过于稀疏会导致内存紧缺。这个JVM会将其控制到最好,不用程序员担心。但有些程序在短期会吃掉大量内存,而这些恐怖的对象很快使用结束了,这时候也许有必要强制下达一条垃圾回命令,这是很有必要的,以便有更多可用的物理内存。
垃圾回收器仅仅能做的是尽可能保证可用内存的使用效率,让可用内存得到高效的管理。程序员可以影响垃圾回收的执行,但不能控制。
总之,在Java语言中,判断一块内存空间是否符合垃圾收集器收集标准的标准只有两个:
1.给对象赋予了空值null,以下再没有调用过。
2.给对象赋予了新值,既重新分配了内存空间。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
kmose正确使用方法? 单位高温防护欠缺致员工中暑如何对待 狗狗为什么爱看视频 360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 go的用法, 我为什么放弃Go语言 为什么除了Go语言,其他类C语言都是垃圾 go语言怎样避免垃圾回收,详见28条 怎样写出的软文能够吸引人 软文图文什么意思 陈皮功效与作用有哪些 治疗消化不良吗求答案 荆楚理工学院申请学分系统什么时候关 荆楚理工学院勤工俭学岗位 荆楚理工学院转专业怎么个程序 荆楚理工学院09届非师范类什么时候报考教师资格证 荆楚理工学院换专业什么时候换最好? 荆楚理工学院的医学院的临床专业的学生专升本可不可以报考外省的学校 荆楚理工学院医学院2007届口腔医学院的辅导员是哪位老师? 大学宿舍问题。有位人很差劲。同宿舍和辅导员说明换宿舍,但是得到的却是:这是理由吗?这样的请问怎么办 荆楚理工学院想换宿舍怎么办?辅导员不给换,不知道这是不是暗示。给他们塞烟酒,红包真的有用吗? 荆楚理工学院的待遇怎么样? 怎样在荆楚理工学院中不同院系转专业 荆楚理工学院沙洋校区是不是在招老师啊 荆楚理工学院。大一上学期体育挂科了怎么办 现在大二了 go语言返回的error为什么可以不接收 在go中recover之后怎么返回error 自媒体135官网在手机上怎么下载? 羊年满姓农历正月十七曰零点十分生的女孩起什么名字好 满氏女孩起名满雨欣 那些满族姓氏比较好听啊? 满姓起名 满姓起名,男孩带友字辈,女孩不用带, 为一个女孩起一个四个字的名字 2017年1月23日16点32分生,男孩,满姓,取什么名字好?母亲叫王慧敏,父 12V电磁阀怎样接线 单片机控制12V的电磁阀 液压12V电磁阀发烫正常吗会导致控制电磁阀的控制器烧毁吗? DC12v先导式电磁阀是用12v直流控制的吗???需不需要脉冲信号 福特嘉年华正时电磁阀可以用12伏电压吗? 太阳能12伏上水阀,多大电流能带动? 科帕奇的VVT电磁阀12伏电压由什么控制? 继电器控制DC 12v电磁阀 单片机通过光耦,PMOS管控制电磁阀开关的问题? 直流12v常闭两线接近开关如何链接继电器来控制电磁阀?