• 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

  • 相关阅读:
    第二阶段冲刺--第五天
    git托管代码随笔--运用ssh传输,不用每次提交频繁输入github账号密码
    项目冲刺--第十天
    项目冲刺--第九天
    随堂练习--用例图练习
    项目冲刺--第四天
    第五次个人作业: 案例分析--微软必应词典客户端
    Code.R团队展示
    Android 自定义AlertDialog
    Ubuntu打开系统监视器查看进程&资源等信息
  • 原文地址:https://www.cnblogs.com/dongtian-blogs/p/10710092.html
Copyright © 2020-2023  润新知