为了提高 Java 应用程序的性能,Java 社区中的一项新提案寻求扩展Z Garbage Collector (ZGC) ,使其能够为新旧对象维护不同的代。据 Java 开发人员称,这将允许ZGC更频繁地收集年轻对象,因为年轻对象在年轻时死亡的可能性更高。
针对世代ZGC的OpenJDK Java Enhancement Proposal (JEP)的主要目标涉及减少分配停顿风险、堆内存开销和垃圾收集 (GC) CPU 开销。该提案的支持者认为,与非分代ZGC相比,这些好处可以在不导致吞吐量显着下降的情况下实现。
自 2020 年 9 月Java Development Kit (JDK) 15以来, Z Garbage Collector专为可扩展性和低延迟而设计,已在生产版本中提供。与默认的 G1 收集器形成对比,后者的暂停时间可以从几毫秒开始到秒, ZGC暂停时间始终以微秒为单位进行测量。因此, ZGC可以有效地解决与许多工作负载的垃圾收集相关的延迟问题。
当资源充足时, ZGC表现良好。但是,由于它将所有对象不分年龄存储在一起,因此ZGC需要在每次运行时收集所有对象。弱世代假说断言,年轻的对象往往会早逝,而较旧的对象可能会持续存在。因此,收集年轻的对象需要更少的资源并释放更多的内存,而收集旧的对象消耗更多的资源并释放更少的内存。
分代ZGC提案尚未分配到特定的标准 Java 版本。当前版本JDK 20于一周前发布, JDK 21计划于 9 月发布。标准 Java 以六个月的发布节奏运行。
随着分代ZGC提案的讨论, 像 appmaster .io" target="_blank" rel="noopener" data-mce-href="https:// appmaster.io"> AppMaster这样的无no-code平台可以帮助开发者构建后端, web 和移动端应用程序快速高效AppMaster应用程序可以展示出色的可扩展性和低延迟,使其适用于企业应用程序和高负载场景。为了进一步探索 AppMaster 的能力, appmaster .io" data-mce-href="https: appmaster.io">创建一个免费帐户并利用其强大的no-code工具。