java - 了解和比较 GarbageCollectorMXBean 和 jstat 实用程序

标签 java garbage-collection

我试图了解 jstat 的输出以及 Java 的 GarbageCollectorMXBean.getCollectionCount() 提供的 API。

jstat-gcutil 选项结合使用可提供名为“FGC - 完整 GC 事件数”的统计信息。这个数字到底代表什么?它是否表示相应垃圾收集器收集的对象总数,如在该样本时间段内在次要和主要收集中清除的对象总数?如果不是,那代表什么?

来到 GarbageCollectorMXBean.getCollectionCount(),它是否也表示相同的东西 - 相应 GC 收集的对象总数。

如果有人能更好地理解上述内容,那就太好了!谢谢。

最佳答案

jstatFGC 列显示“完整 GC 事件”的数量。这基本上意味着自 JVM 启动以来执行的完整垃圾收集次数。它没有说明收集到的对象的数量。

jstatYGC 列显示了相同的指标,但用于年轻代集合。

GarbageCollectorMXBean.getCollectionCount() 指标为您提供自 JVM 启动以来使用该特定垃圾收集器执行的收集次数。

通常,jstatFGC 列和老年代收集器的 GarbageCollectorMXBean.getCollectionCount() 会给你相同的数字。但是,存在一些细微差别。例如,如果您使用 Concurrent Mark Sweep 收集器,每个 Full GC 将被计为 2 个“Full GC 事件”,由 jstat 计算,而 GarbageCollectorMXBean.getCollectionCount() 将将其视为一个集合。

关于java - 了解和比较 GarbageCollectorMXBean 和 jstat 实用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29408044/

相关文章:

Java定期将子目录中的最新文件返回到一个数组中

java - 由于 XOR 按位 ^ 运算符,Java 中的 JavaScript 表达式的返回值类型不正确

javascript - 关于垃圾回收的 Null 和 delete()

java - OpenJDK 11 和 macOS 不支持 ZGC?

c# - ReRegisterForFinalize SuppressFinalize 现实生活中的例子

java - 欧拉项目问题 #61 中的困惑

JavaFX 使用 TextArea 跨列

java - 如何在 GeoTools 12-RC1 中创建开放折线?

java - 设置-XX :+PerfDisableSharedMem JVM flag to false 的效果

c# - 是否有可能对当前被 `using` block 消耗的引用进行 GC?