zoukankan      html  css  js  c++  java
  • JVM 垃圾回收日志

    理解GC日志

    如何打开GC Log显示

    运行的时候加上jvm 参数: -verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails
    这里的-verbose:gc 与 -XX:+PrintGCDetails 的区别参考:参考link

    可以加上 -Xloggc:C:/temp/gc.log 将打印的日志打到文件中去

    Java HotSpot(TM) 64-Bit Server VM (25.74-b02) for windows-amd64 JRE (1.8.0_74-b02), built on Jan 29 2016 17:42:36 by "java_re" with MS VC++ 10.0 (VS2010)
    Memory: 4k page, physical 8284752k(1505712k free), swap 16567644k(8244240k free)
    CommandLine flags: -XX:InitialHeapSize=20971520 -XX:MaxHeapSize=20971520 -XX:MaxNewSize=10485760 -XX:NewSize=10485760 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC 
    0.278: [GC (System.gc()) [PSYoungGen: 5768K->664K(9216K)] 5768K->672K(19456K), 0.0480998 secs] [Times: user=0.08 sys=0.00, real=0.05 secs] 
    0.326: [Full GC (System.gc()) [PSYoungGen: 664K->0K(9216K)] [ParOldGen: 8K->599K(10240K)] 672K->599K(19456K), [Metaspace: 2997K->2997K(1056768K)], 0.1251666 secs] [Times: user=0.14 sys=0.00, real=0.13 secs] 
    Heap
     PSYoungGen      total 9216K, used 164K [0x00000000ff600000, 0x0000000100000000, 0x0000000100000000)
      eden space 8192K, 2% used [0x00000000ff600000,0x00000000ff629100,0x00000000ffe00000)
      from space 1024K, 0% used [0x00000000ffe00000,0x00000000ffe00000,0x00000000fff00000)
      to   space 1024K, 0% used [0x00000000fff00000,0x00000000fff00000,0x0000000100000000)
     ParOldGen       total 10240K, used 599K [0x00000000fec00000, 0x00000000ff600000, 0x00000000ff600000)
      object space 10240K, 5% used [0x00000000fec00000,0x00000000fec95dd8,0x00000000ff600000)
     Metaspace       used 3020K, capacity 4496K, committed 4864K, reserved 1056768K
      class space    used 333K, capacity 388K, committed 512K, reserved 1048576K
    

    我这个是jdk 1.8 中jvm 打印出来的日志,

    最前面的的数字代表的是时间:从虚拟机启动以来的秒数。

    GC日志开头 的 GC 和 Full GC 说明了本次垃圾收集的停顿类型,而不是用来区分新生代GC还是老年代GC的。如果有Full说明此次GC是发生了STW(stop the world) 如果是调用System.gc()方法触发的收集,那么将显示 Full GC(System)

    可以看出 新生代使用的垃圾回收器是:Parallel Scavenge
    根据 名称 区别 使用的何种垃圾回收器:

    • Serial 显示的是 DefNew
    • ParNew 显示的是 ParNew
    • Parallel Scavenge 显示的是 PSYoungGen

    然后 老年代的垃圾回收器使用的是 ParOldGen 代表Parallel Old 收集器

    因为我使用的jdk 1.8 没有永久代这一说了显示的是 Metaspace 区域

  • 相关阅读:
    Pro*C,oci,occi的作用以及区别联系?
    图片缩放 剪切
    去除DataGridView选中行背景色的方法
    重写DataGridView的sort方法 自定义排序
    很好用的js日历 kimsoftjscalendar 感谢KimSoft
    计时器例子
    gcc与g++有什么区别?
    VB.NET全角半角check
    Java 集合框架(Collection)和数组的排序
    Click Models for Web Search(1) Basic Click Models
  • 原文地址:https://www.cnblogs.com/joeCqupt/p/9611010.html
Copyright © 2011-2022 走看看