我正在学习jstat,以及它能告诉我关于JVM不同代的信息。从jstat文档我了解到新一代是由伊甸园,s0和s1组成的。例如,如果对以下内容进行计算,就会看到NGC = EC + S0C + S1C。很棒的东西。
$ 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我在想:
同样地,也适用于:
每对都有相同的价值,至少对我来说,现在是这样。除了旧的空间,老一辈人还有什么东西吗?
编辑:我不认为有什么不同,但我会留下这个问题,以防万一。
发布于 2013-10-31 05:51:00
我只是从jdk的源代码中寻找
简而言之:OGC = sum(all OC)
一个gen可能包含多个空格。
然而,只有一个空格(年轻的gen有3: eden、s0和s1 ),jstat为它们显示了相同的值。
OC和OGC是什么
来自jdk/src/share/classes/sun/tools/jstat/resources/jstat_options
我得到了
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"
}GEN.1中的几个空间
运行下面的groovy代码来检查
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()产出如下:
Y count :3
O count :1你也可以为GEN.2 (烫发一代)做同样的事情
https://stackoverflow.com/questions/11253285
复制相似问题