4

JDK 18 GC垃圾回收机制比较

 2 years ago
source link: https://www.jdon.com/61051
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

JDK 18 GC垃圾回收机制比较
从 JDK 18 开始,JDK 附带了四个垃圾收集器 (GC);串行 GC、并行 GC、G1 GC 和 ZGC。在大多数情况下,默认的 GC G1 GC 将是最佳选择。但是,了解 GC 的设计目标可能会有所帮助,并且可能会帮助您实现应用程序的性能目标。本文将对每个 GC 以及何时应该使用它们进行高级研究。

串行垃圾收集器
Serial GC 是 GC 中“最简单的”。它在单个线程上执行所有工作,因此它被命名为“串行”。
Serial GC 最适合在资源有限且 live set 不超过 100 MB 的环境中运行的应用程序。
可以使用 VM 标志启用串行 GC -XX:+UseSerialGC:.

并行垃圾收集器
Parallel GC 在架构上类似于 Serial GC,但在执行其工作时可以使用多个线程。
并行 GC 旨在最大限度地提高吞吐量。因此,吞吐量是最高优先级的应用程序,即使以更长的暂停时间为代价,也是理想的用例。
可以使用 VM 标志启用并行 GC -XX:+UseParallelGC:.

G1 垃圾收集器
Garbage-First, (G1) GC 被指定为 JDK 9 1的默认 GC 。G1 GC 主要是并发 GC,这意味着它可以在应用程序运行时执行工作。
G1 GC 试图在延迟和吞吐量之间取得平衡,并且可以从资源最少的环境扩展到具有大量资源的环境。
G1 GC 是默认 GC,但可以使用 VM 标志显式启用:-XX:+UseG1GC.

Z 垃圾收集器
最新的 GC ZGC 作为 JDK 15 中的生产特性引入。ZGC 也是并发 GC。
ZGC 专注于低延迟,暂停时间很少超过 250 微秒,并且可以将堆大小从 8MB 扩展到 16TB。
可以使用 VM 标志启用 ZGC -XX:+UseZGC:

be57eaa7d4734da1ba407c103dbb1e57~tplv-obj:2048:1152.image?from=post

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK