java - Meaning of the hs_gc profiler counters in JMH -
i'm using jmh benchmarking tool hs_gc hotspot profiler.
the issue i'm having unsure output counter values mean , cannot find reference on net.
would able point me in direction of specification or explain these values?
i have pasted example output below:
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}
the serviceability in hotspot: hotspot jvmstat performance counters has following warning this:
the counters have structured names such
sun.gc.generation.1.name
,java.threads.live
,java.cls.loadedclasses
. names of these counters , data structures used represent them considered private, uncommitted interfaces hotspot jvm. users should not become dependent on counter names, particularly start prefixes other "java.".
additional warning: source code links below point specific hg.openjdk.java.net/jdk7u/jdk7u60 branch , specific file revisions. links should work forever, jvm evolves new file versions can make information in post obsolete.
the first source of information jstat
documentation (jstat 8 unix docs, jstat 8 windows docs, jstat 7 docs). provides human-readable albeit short description lot of performance counters, example:
fgc: number of full gc events.
the second source of information jstat
source code (jstat source code, jdk7u60 branch) , resource files: jstat_options , jstat_unsupported_options. example, searching fgc
in jstat_options
results in following snippet:
column { header "^fgc^" /* full collections */ data sun.gc.collector.1.invocations align center width 5 scale raw format "0" }
using jstat_options
source code , jstat
documentation possible map of internal counter names prefixes sun.gc.collector
, sun.gc.generation
human-readable descriptions or @ least additional information comments inside jstat_options
file.
most of counters sun.gc.policy
prefix defined in gcpolicycounters.cpp , gcadaptivepolicycounters.cpp , in gc-specific implementations (look somethingcounters.cpp
files in gc-specific folders located on same level shared folder) not able find human-readable descriptions them.
i not able find counters sun.gc.tlab
prefix defined. checking-out full jdk source code , grepping relevant counter names should trick inclined find everything.
Comments
Post a Comment