六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 37|回复: 0

jstat显示的full GC次数与CMS周期的关系

[复制链接]

升级  30.2%

203

主题

203

主题

203

主题

进士

Rank: 4

积分
651
 楼主| 发表于 2013-2-1 09:42:51 | 显示全部楼层 |阅读模式
使用Oracle/Sun JDK来运行Java程序的时候,大家或许有用过jstat工具来观察GC的统计数据,例如上一篇日志里的
$ jstat -gcutil `pgrep -u admin java`  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT    37.21   0.00  99.81  12.87  76.82   1767  196.843  3085 2998.088 3194.931
以前写过一帖说明jstat工具显示的读数与jvmstat计数器之前的关系:用Java获取full GC的次数?(2)
可以知道,FGC列表示的是full GC次数,对应的jvmstat计数器是sun.gc.collector.1.invocations
column {  header "^FGC^"/* Full Collections */  data sun.gc.collector.1.invocations  align right  width 5  scale raw  format "0"}

但是这个计数器在CMS GC里到底是指什么的次数呢?

在JDK 6的HotSpot VM中,Oracle/Sun有官方支持的GC只有CMS比较特殊(Garbage-First在JDK6里还没正式支持,不算在内):其它几种GC的每个周期都是完全stop-the-world的;而CMS的每个并发GC周期则有两个stop-the-world阶段——initial markfinal re-mark,其它阶段是与应用程序一起并发执行的。
<div class="quote_title">Memory Management in the Java HotSpot™ Virtual Machine 写道
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表