java - 选择垃圾收集器的性能指标

标签 java garbage-collection java-11 g1gc

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

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

最佳答案

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

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

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

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

关于java - 选择垃圾收集器的性能指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55460593/

相关文章:

带有通配符字段的 Java 8 ISO 8601 间隔语法

java - sun.misc.Perf 文档或替代品

python - 完成后我应该删除大对象以在 python 中使用它们吗?

java - Java App Engine 11 项目的 app.yaml 中的变量替换

spring-boot - 为什么 Infinispan 在 Spring Boot/Java 11 上因 NoClassDefFoundError 而失败?

java - 从字符串中删除列表或数组的元素

java - 当文件确实存在时抛出 FileNotFoundException

java - 如何验证 REST 服务中的传入 JSON 数据?

java - 封闭实例无效时的封闭类型行为

java - 将 Mockito 与 Java11 一起使用时出现异常