java如何打印gc日志_Eclipse打印GC日志

一、生成gc.log

第一步:右键项目或文件——Run As——Run Configurations。

第二步:点击Arguments,在VM arguments中填写-Xloggc:F:/gc.log,点击Apply,最后点击Run。(可在自己选定目录中生成gc.log,例如:我选择的是F盘目录下)

或者(VM参数:-verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8 -XX:PretenureSizeThreshold=3145728 -Xloggc:F:/gc.log)

第三步:进入F盘,这时候会看到在F盘中生成了文件“gc.log”,用记事本打开即可查看该文件运行的GC日志。

二、查看日志信息

0.187: [GC (System.gc()) 2003K->688K(125952K), 0.0014071 secs]

0.189: [Full GC (System.gc()) 688K->559K(125952K), 0.0076203 secs]

---0.187:GC发生的时间(从虚拟机启动以来经过的秒数)

---[GC / Full /:本次垃圾收集的停顿类型,有Full表示这次GC是发生了Stop-The-World的

---System.gc():调用了System.gc()方法的收集

---2003K->688K(125952K)

表示GC前该内存区域已使用容量->GC后该内存区域已使用容量,后面圆括号里面的125952K为该内存区域的总容量。

不同的收集器打印出的信息稍有不同:

[GC类型 (System.gc()) [Young区: GC前Young的内存占用->GC后Young的内存占用(Young区域总大小)]

[old老年代: GC前Old的内存占用->GC后Old的内存占用(Old区域总大小)] GC前堆内存占用->GC后堆内存占用(JVM堆总大小),

[永久代区: GC前占用大小->C后占用大小(永久代区总大小)], GC用户耗时] [Times:用户耗时 sys=系统时间, real=实际时间]

三、VM参数

1、限制 Java 堆的大小为 20M,且不可扩展:

-Xms20m -Xmx20m

2、打印加载类的详细信息

-verbose:gc

3、新生代堆大小1G

-XX:SurvivorRatio=8

4、虚拟机在出现内存溢出异常时Dump 出当前的内存堆转储快照

-XX:+TraceClassLoading

5、打印加载类的详细信息

-XX:+PrintGCDetails

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值