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

Popular posts from this blog

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

php - render data via PDO::FETCH_FUNC vs loop -

The canvas has been tainted by cross-origin data in chrome only -