• JVM的YoungGC日志查看


    程序中打印的GC日志如何查看?

    CommandLine flags: -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./ -XX:InitialHeapSize=10485760 -XX:MaxHeapSize=10485760 -XX:MaxNewSize=5242880 -XX:NewSize=5242880 -XX:OldPLABSize=16 -XX:PretenureSizeThreshold=10485760 -XX:+PrintGC -XX:+PrintGCDetails
    这一行就是告诉我们程序采用的JVM参数是什么。

    1。一次GC的概要说明
    0.112: [GC (Allocation Failure) 0.112: [ParNew: 3392K->390K(4608K), 0.0023184 secs] 3392K->1416K(9728K), 0.0024007 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
    这个就是概要说明了本次GC的执行情况。

    GC (Allocation Failure) 对象分配失败,因为我们把参数设置的很小,导致Eden区内存不够导致Young GC

    那这次GC是什么时候发生的?
    0.112这个数字代表系统运行多久后发生了GC,毫秒

    ParNew: 3392K->390K(4608K), 0.0023184 secs

    ParNew的意思就是触发了Young GC,年轻代我们用的是ParNew垃圾回收器

    3392K->390K(4608K)

    这个代表的意思是年轻代可用空间是3392,这个大小是Eden+1个Survivor的大小

    然后3392K->390K,意思就是年轻代GC后存活下来390KB对象
    0.0023184这个就是本次GC耗费的时间,2.3ms


    3392K->1416K(9728K)这段话指的是整个java堆内存情况,整个java堆内存可用9728KB(9.5MB),其实就是年轻代4.5MB+老年代5M,
    然后GC前整个Java堆内存里使用了3392KB,GC之后Java堆内存使用了1416KB。

    [Times: user=0.02 sys=0.00, real=0.01 secs] 
    这个意思就是本次GC消耗的时间,毫秒
    2。GC过后堆内存使用情况

    Heap
    par new generation total 4608K, used 3580K [0x00000000ff600000, 0x00000000ffb00000, 0x00000000ffb00000)
    eden space 4096K, 77% used [0x00000000ff600000, 0x00000000ff91d700, 0x00000000ffa00000)
    from space 512K, 76% used [0x00000000ffa80000, 0x00000000ffae1bb0, 0x00000000ffb00000)
    to space 512K, 0% used [0x00000000ffa00000, 0x00000000ffa00000, 0x00000000ffa80000)
    concurrent mark-sweep generation total 5120K, used 1026K [0x00000000ffb00000, 0x0000000100000000, 0x0000000100000000)
    Metaspace used 3023K, capacity 4496K, committed 4864K, reserved 1056768K
    class space used 330K, capacity 388K, committed 512K, reserved 1048576K
    这段日志是JVM退出的时候打印出来的当前堆内存的使用情况

    par new generation   total 4608K, used 3580K [0x00000000ff600000, 0x00000000ffb00000, 0x00000000ffb00000)
    eden space 4096K, 77% used [0x00000000ff600000, 0x00000000ff91d700, 0x00000000ffa00000)
    from space 512K, 76% used [0x00000000ffa80000, 0x00000000ffae1bb0, 0x00000000ffb00000)
    to space 512K, 0% used [0x00000000ffa00000, 0x00000000ffa00000, 0x00000000ffa80000)

    par new generation   total 4608K, used 3580K,这就是说ParNew垃圾回收器负责的年轻代总共有4608KB可用内存,
    目前使用了3580KB


     eden space 4096K,  77% used [0x00000000ff600000, 0x00000000ff91d700, 0x00000000ffa00000)
    from space 512K, 76% used [0x00000000ffa80000, 0x00000000ffae1bb0, 0x00000000ffb00000)
    to space 512K, 0% used [0x00000000ffa00000, 0x00000000ffa00000, 0x00000000ffa80000)

    Eden区域使用了77%,From Survivor区512KB使用了76%


     concurrent mark-sweep generation total 5120K, used 1026K [0x00000000ffb00000, 0x0000000100000000, 0x0000000100000000)
    Metaspace used 3023K, capacity 4496K, committed 4864K, reserved 1056768K
    class space used 330K, capacity 388K, committed 512K, reserved 1048576K

    concurrent mark-sweep generation total 5120K, used 1026K这个就是说CMS垃圾回收器负责的区域。


     Metaspace       used 3023K, capacity 4496K, committed 4864K, reserved 1056768K
    class space used 330K, capacity 388K, committed 512K, reserved 1048576K
    Metaspace元数据空间和class空间,存放类信息,常量池之类总容量,使用内存等等。

    参考自:狸猫技术窝















  • 相关阅读:
    完结篇《产品在路上》
    产品经理的七个层次
    互联网产品的交互设计
    互联网产品的用户体验
    用户体验设计 UED (下)
    用户体验设计 UED (上)
    【100Days of 100 line Code】1 day
    leetcode 392.判断子序列(Java 贪心)
    leetcode 605.种花问题(java 贪心)
    leetcode 122.买卖股票的最佳时机||(Java 贪心)
  • 原文地址:https://www.cnblogs.com/technologykai/p/12870258.html
Copyright © 2020-2023  润新知