I'm learning about jstat and what it can tell me about the JVM's different generations. From the jstat docs I understand the new gen is made up of eden, s0 and s1. For example, if you do the math on the following, you see that NGC = EC + S0C + S1C. Great stuff.
$ jstat -gccapacity -t 21830 5000
Timestamp NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC PGCMN PGCMX PGC PC YGC FGC
248767.4 2624.0 87360.0 6656.0 640.0 640.0 5376.0 5376.0 174784.0 12840.0 12840.0 21248.0 131072.0 34304.0 34304.0 457 73
248772.4 2624.0 87360.0 6656.0 640.0 640.0 5376.0 5376.0 174784.0 12840.0 12840.0 21248.0 131072.0 34304.0 34304.0 457 73
248777.3 2624.0 87360.0 6656.0 640.0 640.0 5376.0 5376.0 174784.0 12840.0 12840.0 21248.0 131072.0 34304.0 34304.0 457 73
I'm wondering what's the difference between:
And similarly for:
Each pair has the same value, at least for me, right now. Is there ever anything in the old generation beside the old space?
I just seek from the jdk source
in short:
OGC = sum(all OC)
A gen may contain MORE THAN ONE spaces.
However, Hotspot old gen has only 1 space ( young gen has 3: eden , s0 and s1 ), jstat shows the same value for them.
WHAT IS OC and OGC
from
jdk/src/share/classes/sun/tools/jstat/resources/jstat_options
I got
OGC = sun.gc.generation.1.capacity
OC = sun.gc.generation.1.space.0.capacity
column {
header "^OGC^" /* Old Generation Capacity - Current */
data sun.gc.generation.1.capacity
scale K
align right
width 11
format "0.0"
}
column {
header "^OC^" /* Old Space Capacity - Current */
data sun.gc.generation.1.space.0.capacity
scale K
align right
width 11
format "0.0"
}
HOW MANY SPACES IN GEN.1
run groovy code below to examine
import java.lang.management.ManagementFactory
import sun.jvmstat.monitor.*;
name = ManagementFactory.runtimeMXBean.name
pid = name[0..<name.indexOf('@')]
vmId = new VmIdentifier(pid)
vm = MonitoredHost.getMonitoredHost(vmId).getMonitoredVm(vmId, 0)
println 'Y count :' + vm.findByName('sun.gc.generation.0.spaces').longValue()
println 'O count :' + vm.findByName('sun.gc.generation.1.spaces').longValue()
output is:
Y count :3
O count :1
You can do the same for GEN.2 (PERM GEN)