美文网首页
gc日志详解

gc日志详解

作者: Aaron_Swartz | 来源:发表于2019-02-15 17:35 被阅读0次

    GC日志是一个很重要的工具,它准确记录了每一次的GC的执行时间和执行结果,通过分析GC日志可以优化堆设置和GC设置,或者改进应用程序的对象分配模式。

    • 生产中配置ct任务的gc日志实例
    ${JAVA_HOME}/bin/java -Dlog4j.logtype=$ERROR_FILENAME -Xms2048m -Xmx2048m -XX:MaxPermSize=512M -XX:+PrintGC -verbose:gc -Xloggc:gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -classpath $CLASSPATH com.baidu.fengchao.sirius.scripts.deletefile.DeleteFileScripts wordcleanup >> ${log_file}  2>&1
    
    • gc日志实例
    [GC (System.gc()) [PSYoungGen: 26982K->1194K(75776K)] 26982K->1202K(249344K), 0.0010103 secs]
    
    • gc日志具体参数详解

    GC日志说明:
    GC打印时间: [垃圾回收类型回收时间: [收集器名称: 年轻代回收前占用大小->年轻代回收后占用大小(年轻代当前容量), 年轻代局部GC时JVM暂停处理的时间] 堆空间GC前占用的空间->堆空间GC后占用的空间(堆空间当前容量) ,GC过程中JVM暂停处理的时间]。

    • 垃圾回收类型: 分为GC和Full GC.

    GC一般为堆空间某个区发生了垃圾回收,
    Full GC基本都是整个堆空间及持久代发生了垃圾回收,通常优化的目标之一是尽量减少GC和Full GC的频率。

    • 在java程序中是否需要主动执行System.gc()

    参考1 告诉大家其实不需要,并且即使执行了也只是告诉jvm该执行gc了。具体jvm什么时候执行gc其实并不清楚。

    参考
    1 JVM:gc什么时候开始?System.gc()能保证gc一定发生吗?
    2 eclipse启动gc日志打印
    3 jvm的gc日志full Gc每个字段彻底详解

    相关文章

      网友评论

          本文标题:gc日志详解

          本文链接:https://www.haomeiwen.com/subject/nmppeqtx.html