eclipse启动gc日志打印

来源:互联网 发布:手机知乎怎么提问题 编辑:程序博客网 时间:2024/05/16 04:17
1、在eclipse根目录下的eclipse.ini配置文件中添加以下参数: 
-verbose:gc (开启打印垃圾回收日志) 
-Xloggc:eclipse_gc.log (设置垃圾回收日志打印的文件,文件名称可以自定义) 
-XX:+PrintGCTimeStamps (打印垃圾回收时间信息时的时间格式) 
-XX:+PrintGCDetails (打印垃圾回收详情) 
添加完以上参数后当启动Eclipse后就能在Eclipse根目录看到一个eclipse_gc.log的gc日志文件 
2、添加JVM监控参数

-Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.port=6688 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false 

3、设置eclipse初始堆、非堆内存大小以及年轻代 
-Xms50m –Xmx200m -XX:PermSize=30m -XX:MaxPermSize=60m 


GC日志:

5.986: [GC [PSYoungGen: 262208K->10007K(305856K)] 262208K->10007K(1004928K), 0.0242651 secs] [Times: user=0.03 sys=0.00, real=0.04 secs] 
14.828: [GC [PSYoungGen: 272215K->38772K(305856K)] 272215K->38772K(1004928K), 0.0570761 secs]

GC日志说明: 
GC打印时间: [垃圾回收类型回收时间: [收集器名称: 年轻代回收前占用大小->年轻代回收后占用大小(年轻代当前容量), 
年轻代局部GC时JVM暂停处理的时间] 堆空间GC前占用的空间->堆空间GC后占用的空间(堆空间当前容量) 
,GC过程中JVM暂停处理的时间]。 
垃圾回收类型:分为GC和Full GC. 
GC一般为堆空间某个区发生了垃圾回收, 
Full GC基本都是整个堆空间及持久代发生了垃圾回收,通常优化的目标之一是尽量减少GC和Full GC的频率。 
收集器名称:一般都为收集器的简称或别名,通过收集器名称基本都能判断出那个区发生了GC。 
DefNew:年轻代(新生代)发生了GC (若为DefNew可知当前JVM年轻代使用的串行收集器) 
ParNew:年轻代(新生代)发生了GC (若为ParNew可知当前JVM年轻代使用了并行收集器) 
Tenured:老年代发生了GC 
Perm:持久代发生了GC

0 0
原创粉丝点击