首页 > 解决方案 > 选择垃圾收集器的性能指标

问题描述

选择垃圾收集器时应该测量什么?

就我而言,我试图比较吞吐量收集器与 G1GC 的性能,不太确定在做出最终决定之前应该寻找什么。我知道查看垃圾收集器花费了多少时间听起来是个好主意,但它可能会可能不会影响我的应用程序性能。(仅供参考 - 从 Java 8 迁移到 Java 11)

标签: javagarbage-collectionjava-11g1gc

解决方案


JVM 中不同的 GC 是针对不同的用例设计的:

  1. 吞吐量 - 并行
  2. 延迟 - CMS
  3. 可预测性 - G1、ZGC

一旦你知道你正在寻找这些用例中的哪一个,你就可以选择一个相关的指标,例如测量吞吐量收集器的平均暂停时间是没有意义的,最好查看收集所花费的总时间。

将并行收集器与 G1 进行比较是没有意义的,它们是为不同的用例设计的。如果您必须快速处理批量数据,请使用 Parallel。如果您的应用程序必须在工作负载期间做出响应,请使用 G1。


推荐阅读