当前位置: 首页 > 科技观察

Java9wishlist:请给我们一个更理想的垃圾回收机制

时间:2023-03-12 07:56:24 科技观察

Oracle表示,低暂停的G1垃圾回收机制将取代ParallelGC,提高系统执行效率。Oracle目前正计划在32位和64位Java服务器配置中使用G1服务器垃圾回收机制作为默认回收选项,但这种做法可能会带来一系列后续问题。正如今年早些时候首次发布并于本月更新的JEP(JDK增强程序)248中指出的那样,这种回收变化的动机是在内存管理中引入暂停时间。“一般来说,限制GC暂停时间比最大化吞吐量更重要,”建议指出。“并且选择像G1这样的低暂停垃圾收集方案应该会为大多数用户带来更好的整体体验——至少与当前的默认选项并行GC相比,后者主要面向吞吐量。......这个变化主要是如果这个假设是不正确的,基于限制延迟水平通常优先于增加吞吐量的假设,这种调整可能不会像它应该的那样有效,甚至可能需要重新审视。”甲骨文的计划是在明年发布的Java9中部署G1,在JDK(即Java开发工具)8及其后续更新版本中,G1迎来了多项性能提升,根据JEP文档,应该在JDK9中进一步完善。根据Oracle文档,G1是针对大内存和多处理器设备的基于服务器的垃圾收集解决方案。但是,将其用作默认收集机制可能会暴露G1中的一些潜在问题以前不知道,JEP248指出。“如果在JDK9的生命周期内有一些无法解决的问题,那么我们将重新使用ParallelGC作为JDK9通用版本的默认垃圾收集方案。”G1还提供了多种不同的资源使用方式。“当需要将资源使用控制在最底层时,用户应该更喜欢其他垃圾收集机制来代替G1,而改变后,备份col选举机制必须明确规定。"ParallelGC,一种并行垃圾回收方案,多年来一直作为Java的默认选项,需要尽可能压缩垃圾回收停顿时间的应用程序主要使用ConcurrentMarkSweep——后者也是一种替代方案,技术供应商AzulSystems的Java虚拟机ScottSellers指出,G1是一个新的实现,它的代码更简洁,在维护方面对开发人员更友好,因此“一些用户可能更喜欢使用G1作为一种进化处理方法,”卖家解释说。但是,G1也有其??自身的缺点,包括较慢的数据吞吐量和比并行垃圾收集机制更差的性能,”他说。“G1的另一大缺点是,如果应用程序需要具有非常严格的响应时间特性,几乎在所有情况下,经过微调的CMS垃圾收集机制都可以提供比G1更好的响应时间指标。》原标题:Java9需要更干净的垃圾收集器