这是我的catalina.out中的一条声明,由我的tomcat服务器生成:
1885.855:[GC [PSYoungGen:742996K-> 64359K(761472K)] 2509583K-> 1832973K(4116928K),0.1453610 secs] [次:用户= 0.31 sys = 0.00,real = 0.14 secs]
有人可以在这里解释各种数字的含义吗?
答案 0 :(得分:24)
该线的分解如下:
1885.85
- 这在几秒钟内就是JVM运行的时间,所以在你的情况下大约31分钟左右就会发生GC。
[GC
- 说明此时发生的GC。这是部分GC,有时会显示Full GC
现在,可用于JVM的总堆=年轻+旧
[PSYoungGen:742996K->64359K(761472K)
- 表示Young代中的Parallel Scavenging Collector(它是JVM中可用的众多GC收集器之一)。
GC释放的内存始终为
模式x->y(z)
x是GC之前的初始内存,y是 GC后的内存,z是总数 内存允许该区域 JVM
所以在你的例子中,
742996K->64359K(761472K)
- 年轻的总年龄为761Mb,当它达到742 Mb时,收集发生了,并且清除到64.3Mb
即它清理了678 Mb
2509583K->1832973K(4116928K)
这里表示总堆内存。 因此,在可能存在的4.1 Gb堆中,当GC发生时,它已经填充了2.5 Gb并且已经降至1.83 Gb - 再次相同的678 Mb是被清除的。
0.1453610 secs]
整个操作耗时0.1453610秒
[Times: user=0.31 sys=0.00, real=0.14 secs]
显示了user, system and real times的分手。
这只是一行 - 您将寻找一种模式,其中包含Full GC
并使用像GCViewer这样的日志分析器来显示吞吐量和其他好东西。
另请阅读docs from Sun以获取基础知识。
进一步阅读:
http://sujitpal.blogspot.com/2006/08/charting-jvm-garbage-collection.html