JVM忽略GC Logging标志?

时间:2014-04-15 20:31:19

标签: java memory-management garbage-collection jvm

我正在运行一个带有标志-Xloggc:./gc-$$.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps的简单程序,它的所有输出都是

Heap
 def new generation   total 4928K, used 642K [0x04760000, 0x04cb0000, 0x09cb0000)
  eden space 4416K,  14% used [0x04760000, 0x04800b38, 0x04bb0000)
  from space 512K,   0% used [0x04bb0000, 0x04bb0000, 0x04c30000)
  to   space 512K,   0% used [0x04c30000, 0x04c30000, 0x04cb0000)
 tenured generation   total 10944K, used 0K [0x09cb0000, 0x0a760000, 0x14760000)
   the space 10944K,   0% used [0x09cb0000, 0x09cb0000, 0x09cb0200, 0x0a760000)
 compacting perm gen  total 12288K, used 1588K [0x14760000, 0x15360000, 0x18760000)
   the space 12288K,  12% used [0x14760000, 0x148ed008, 0x148ed200, 0x15360000)
No shared spaces configured.

(我已尝试添加-verbose:gc

我正在跳跃得到像以下那样的实际GC统计数据:

581.146: [Full GC [PSYoungGen: 170752K->0K(341376K)] [PSOldGen: 786611K->786713K(919552K)] 957363K->786713K(1260928K) [PSPermGen: 19076K->19076K(29184K)], 3.4611450 secs] 
584.691: [Full GC [PSYoungGen: 170752K->0K(341376K)] [PSOldGen: 786713K->786759K(919552K)] 957465K->786759K(1260928K) [PSPermGen: 19076K->19076K(27648K)], 3.4172340 secs] 

无法找到我做错的事。我用

java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode

错误的旗帜?

2 个答案:

答案 0 :(得分:0)

你的旗帜似乎很好。该程序触发了不同的输出:

class Foo {
  public static void main(String[] args) { System.gc(); }
}

日志文件中的输出如

2014-05-10T01:20:41.896+0200: 0.054: [GC (System.gc()) [PSYoungGen: 379K->352K(1024K)] 379K->360K(128512K), 0.0007776 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 

答案 1 :(得分:0)

好的,apangin说得对 - 我的gc没有足够的时间跑。让程序运行一段时间,我得到了正确的日志。