5

简短比较三个 Java现代垃圾回收器

 8 months ago
source link: https://www.jdon.com/69050.html
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.

简短比较三个 Java现代垃圾回收器

23-10-13 banq

最新版本的 Java 中引入了三个现代垃圾收集器,以下是三个场景比较:

G1 收集器专为以下应用而设计:

  • 可以与应用程序线程并发操作。
  • 紧凑的可用空间,没有长时间的 GC 引起的暂停时间。
  • 需要更可预测的 GC 暂停持续时间。
  • 不想牺牲吞吐量。
  • 不需要更大的 Java 堆。

因此,G1 收集器更像是一个稳定且通用的解决方案,除非您对短暂停时间有特定要求。
从 Java 9 开始,G1 是默认的垃圾收集器。

ZGC专为以下应用而设计:

  • 需要较短的暂停时间和/或使用非常大的堆(数 TB)。
  • 要求对大量GC 操作具有稳定的响应能力。
  • 托管在 Linux x86 64 位系统上(当前支持,ARM 正在进行中)。
  • 使用 JDK 11+。

Shenandoah专为以下应用而设计:

  • 无论堆大小(低或高),都需要较短的暂停时间。
  • 要求对大量GC 操作具有稳定的响应能力。
  • 托管在 Linux 或 ARM x86 32 位和 64 位上。
  • 仍在使用 JDK 8(可以使用下游向后移植到 OpenJDK 8u)。

没有一个 GC 比其他 GC 更好。这取决于你需要什么。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK