jvm参数之GC日志

1.verbose:gc

表示,启动jvm的时候,输出jvm里面的gc信息。格式如下:

[Full GC 200K->100K(1984K), 0.0653877 secs]
解读 :Full GC 就表示执行了一次Full GC操作,200K 和100K 表示执行GC前内存容量和执行GC后的内存容量。1984K就表示内存总容量。0.0653877是本次GC所耗时间,单位秒。
2.-XX:+printGC

这个打印的GC信息跟上个相同。

3.-XX:+PrintGCDetails

打印GC的详细信息。格式如下:

–Heap
– def new generation   total 13824K, used 11223K [0x27e80000, 0x28d80000, 0x28d80000)
解读:new generation 就是堆内存里面的新生代。total指的是该区域内存容量。used也就是已使用的。0x开头的那三个分别代表的是 初始值,当前所使用的值,最大值。

–  eden space 12288K,  91% used [0x27e80000, 0x28975f20, 0x28a80000)
解读:eden space 指的是eden区,是在新生代里面的,一些创建的对象都会先被放进这里。后面那个12288K就表示eden区容量,91% used,表示已经使用了百分之多少。后面同上

–  from space 1536K,   0% used [0x28a80000, 0x28a80000, 0x28c00000)
–  to   space 1536K,   0% used [0x28c00000, 0x28c00000, 0x28d80000)
解读:from space 和to space 是survivor的两个区。也属于新生代。他两个区的大小一样的。因为新生代的GC采用的是复制算法,每次只会用到一个幸存区,所以总会有一个是空的

– tenured generation   total 5120K, used 0K [0x28d80000, 0x29280000, 0x34680000)
–   the space 5120K,   0% used [0x28d80000, 0x28d80000, 0x28d80200, 0x29280000)
– compacting perm gen  total 12288K, used 142K [0x34680000, 0x35280000, 0x38680000)
–   the space 12288K,   1% used [0x34680000, 0x346a3a90, 0x346a3c00, 0x35280000)
–    ro space 10240K,  44% used [0x38680000, 0x38af73f0, 0x38af7400, 0x39080000)
–    rw space 12288K,  52% used [0x39080000, 0x396cdd28, 0x396cde00, 0x39c80000)
解读:老年代
4.-XX:+PrintGCTimeStamps

打印GC发生的时间戳。

7889.556: [GC [PSYoungGen: 314113K->15937K(300928K)] 405513K->107901K(407680K), 0.0178568 secs] [Times: user=0.06 sys=0.00, real=0.01 secs]
解读:7889.556表示从jvm启动到发生垃圾回收所经历的的时间。GC表示是Minor GC。PSYoungGen表示新生代使用的是多线程垃圾回收器Parallel Scavenge。
314113K->15937K(300928K)]GC前和GC后的情况。
300928K表示整个堆得大小
Times代表GC的所消耗的时间,用户垃圾回收的时间和系统消耗的时间和最终真实的消耗时间。

5.-X:loggc:log/gc.log

指定输出到当前目录下log文件夹中的gc.log中
6.-XX:+PrintHeapAtGC

表示每次GC后,都打印堆的信息。
7.-XX:+TraceClassLoading

监控类的加载。格式如下:

•[Loaded java.lang.Object from shared objects file]
•[Loaded java.io.Serializable from shared objects file]
•[Loaded java.lang.Comparable from shared objects file]
•[Loaded java.lang.CharSequence from shared objects file]
•[Loaded java.lang.String from shared objects file]
•[Loaded java.lang.reflect.GenericDeclaration from shared objects file]
•[Loaded java.lang.reflect.Type from shared objects file]
使用这个参数可以很清楚的看到哪些类被加载。
8.-XX:+PrintClassHistogram

跟踪参数。这个按下Ctrl+Break后,就会打印一下信息:

num     	instances	bytes		classname
 
----------------------------------------------
  序号   	 实例数量	总大小		类型。 
   1:        20000      470266000	B
  
   2:        89643      215432		java.util.HashMap$Node
  
   3:        9068       1449728		java.lang.Long
  
   4:        13         838712		java.util.HashMap$Node;
  
   5:        262        37180  		A
  
   6:        503        1904		java.lang.Class


这里面那个类型,B和C的其实就是byte和char类型。

9.-XX:+HeapDumpOnOutMemoryError

发生OOM时,导出堆的信息到文件。
10.-XX:+HeapDumpPath

表示,导出堆信息的文件路径。
11.-XX:OnOutOfMemoryError

当系统产生OOM时,执行一个指定的脚本,这个脚本可以是任意功能的。比如生成当前线程的dump文件,通知管理员或者直接重启
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值