JMH中hs_gc探查器计数器的含义

 seazz2001 发布于 2023-01-12 16:06

我正在使用JMH基准测试工具和hs_gc hotspot profiler.

我遇到的问题是我不确定输出计数器值是什么意思,并且无法在网上找到参考.

有人能指出我的规范方向或解释这些价值观吗?

我在下面粘贴了一个示例输出:

HS(GC) | difference: {

sun.gc.collector.0.invocations=16,
sun.gc.collector.0.lastEntryTime=37106821,
sun.gc.collector.0.lastExitTime=37109336,
sun.gc.collector.0.time=1528884,

sun.gc.collector.1.invocations=6,
sun.gc.collector.1.lastEntryTime=34419368,
sun.gc.collector.1.lastExitTime=35532892,
sun.gc.collector.1.time=6721387,

sun.gc.generation.0.space.0.used=872712984,
sun.gc.generation.1.space.0.used=5721334504,
sun.gc.generation.2.space.0.used=4848,

sun.gc.policy.avgBaseFootprint=5312,

sun.gc.policy.avgMajorIntervalTime=-667,
sun.gc.policy.avgMajorPauseTime=-41,

sun.gc.policy.avgMinorIntervalTime=-557,
sun.gc.policy.avgMinorPauseTime=1,

sun.gc.policy.avgOldLive=88064,
sun.gc.policy.avgPromotedAvg=421184,
sun.gc.policy.avgPromotedDev=364832,
sun.gc.policy.avgPromotedPaddedAvg=1515648,
sun.gc.policy.avgSurvivedAvg=1056640,
sun.gc.policy.avgSurvivedDev=-189440,
sun.gc.policy.avgSurvivedPaddedAvg=488320,
sun.gc.policy.avgYoungLive=2708352,

sun.gc.policy.liveAtLastFullGc=5721334504,
sun.gc.policy.liveSpace=2801664,

sun.gc.policy.majorGcCost=5,
sun.gc.policy.majorPauseYoungSlope=-3,

sun.gc.policy.minorGcCost=2,
sun.gc.policy.minorPauseTime=3,
sun.gc.policy.minorPauseYoungSlope=1,

sun.gc.policy.mutatorCost=-7,

sun.gc.policy.oldEdenSize=11534336,
sun.gc.policy.promoted=4584928,
sun.gc.policy.survived=6194624,

sun.gc.tlab.alloc=12852845,
sun.gc.tlab.fills=-15,

sun.gc.tlab.gcWaste=-100979,
sun.gc.tlab.maxFills=-22,
sun.gc.tlab.maxGcWaste=-100859,
sun.gc.tlab.maxSlowAlloc=-5,
sun.gc.tlab.maxSlowWaste=8826,

sun.gc.tlab.slowAlloc=-5,
sun.gc.tlab.slowWaste=8849}

Oleg Estekhi.. 12

HotSpot中的可维护性:HotSpot Jvmstat性能计数器对此有以下警告:

计数器有结构的名称,例如sun.gc.generation.1.name,java.threads.live,java.cls.loadedClasses.这些计数器的名称和用于表示它们的数据结构被认为是HotSpot JVM的专用,未提交的接口.用户不应该依赖任何计数器名称,特别是那些以"java."以外的前缀开头的名称.

附加警告:下面的所有源代码链接都指向特定的hg.openjdk.java.net/jdk7u/jdk7u60分支和特定的文件修订版.链接本身应该永远有效,但随着JVM的发展,新文件版本可以使这篇文章中的信息过时.

第一个信息来源是jstat文档(jstat 8 unix docs,jstat 8 windows docs,jstat 7 docs).它为许多性能计数器提供了人类可读的尽管简短描述,例如:

FGC: Number of full GC events.

第二个信息源是jstat源代码(jstat源代码,jdk7u60分支),特别是其资源文件:jstat_options和jstat_unsupported_options.例如,搜索FGCjstat_options下面的代码片段的结果:

column {
  header "^FGC^"    /* Full Collections */
  data sun.gc.collector.1.invocations
  align center
  width 5
  scale raw
  format "0"
}

使用jstat_options源代码和jstat文档,可以将大多数内部计数器名称与前缀sun.gc.collectorsun.gc.generation人类可读描述相映射,或者至少从jstat_options文件内的注释中获取一些其他信息.

大多数带sun.gc.policy前缀的计数器都在gcPolicyCounters.cpp和gcAdaptivePolicyCounters.cpp中定义,也在GC特定的实现中定义(查找somethingCounters.cpp与共享文件夹位于同一级别的GC特定文件夹中的文件),但我无法找到人类 - 对他们的可读描述.

我无法找到sun.gc.tlab定义带前缀的计数器的位置.签出完整的JDK源代码并为相关的计数器名称搜索它应该可以帮助那些倾向于找到所有内容的人.

1 个回答
  • HotSpot中的可维护性:HotSpot Jvmstat性能计数器对此有以下警告:

    计数器有结构的名称,例如sun.gc.generation.1.name,java.threads.live,java.cls.loadedClasses.这些计数器的名称和用于表示它们的数据结构被认为是HotSpot JVM的专用,未提交的接口.用户不应该依赖任何计数器名称,特别是那些以"java."以外的前缀开头的名称.

    附加警告:下面的所有源代码链接都指向特定的hg.openjdk.java.net/jdk7u/jdk7u60分支和特定的文件修订版.链接本身应该永远有效,但随着JVM的发展,新文件版本可以使这篇文章中的信息过时.

    第一个信息来源是jstat文档(jstat 8 unix docs,jstat 8 windows docs,jstat 7 docs).它为许多性能计数器提供了人类可读的尽管简短描述,例如:

    FGC: Number of full GC events.
    

    第二个信息源是jstat源代码(jstat源代码,jdk7u60分支),特别是其资源文件:jstat_options和jstat_unsupported_options.例如,搜索FGCjstat_options下面的代码片段的结果:

    column {
      header "^FGC^"    /* Full Collections */
      data sun.gc.collector.1.invocations
      align center
      width 5
      scale raw
      format "0"
    }
    

    使用jstat_options源代码和jstat文档,可以将大多数内部计数器名称与前缀sun.gc.collectorsun.gc.generation人类可读描述相映射,或者至少从jstat_options文件内的注释中获取一些其他信息.

    大多数带sun.gc.policy前缀的计数器都在gcPolicyCounters.cpp和gcAdaptivePolicyCounters.cpp中定义,也在GC特定的实现中定义(查找somethingCounters.cpp与共享文件夹位于同一级别的GC特定文件夹中的文件),但我无法找到人类 - 对他们的可读描述.

    我无法找到sun.gc.tlab定义带前缀的计数器的位置.签出完整的JDK源代码并为相关的计数器名称搜索它应该可以帮助那些倾向于找到所有内容的人.

    2023-01-12 16:09 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有