10

私はjstatと、それがJVMのさまざまな世代について何を教えてくれるかについて学んでいます。jstatのドキュメントから、新しい世代はeden、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

私はの違いは何だろうと思っています:

  • OGC(現在の旧世代容量(KB))および
  • OC(現在の古いスペース容量(KB))。

そして同様に:

  • PGC(現在の永久発電容量(KB))および
  • PC(現在の永続スペース容量(KB))。

現在、少なくとも私にとっては、各ペアの値は同じです。古い空間のほかに、古い世代に何かありますか?


編集:違いはないと思いますが、念のためこの質問は残しておきます。

4

1 に答える 1

10

jdkソースから検索するだけです

要するに: OGC = sum(all OC)

genには複数のスペースが含まれる場合があります。

ただし、ホットスポットの古い世代にはスペースが1つしかなく(若い世代には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(PERM GEN)でも同じことができます

于 2013-10-31T05:51:00.857 に答える