JVM日志分析之二

2020年6月23日
JVM日志分析之二插图

本文出自明月工作室:https://www.freebytes.net/it/java/https-www-freebytes-net-it-java-jvm-log-anaylise-2-html.html

程序

public class Test2 {
    public static void main(String[] args) {
        byte[] b =null;
        for (int i = 0; i < 10; i++) {
            b=new byte[1*1024*1024];
        }
    }
}

JVM参数

jvm参数 : -Xmx20m -Xms20m -Xmn15m -XX:+PrintGCDetails
解释:设置堆内存最大最小值为20M,新生代内存为15M,打印详细的堆参数

程序运行日志

  Heap 
   PSYoungGen      total 13824K, used 12017K [0x00000000ff100000, 0x0000000100000000, 0x0000000100000000)
    eden space 12288K, 97% used [0x00000000ff100000,0x00000000ffcbc608,0x00000000ffd00000)
    from space 1536K, 0% used [0x00000000ffe80000,0x00000000ffe80000,0x0000000100000000)
    to   space 1536K, 0% used [0x00000000ffd00000,0x00000000ffd00000,0x00000000ffe80000)
   ParOldGen       total 5120K, used 0K [0x00000000fec00000, 0x00000000ff100000, 0x00000000ff100000)
    object space 5120K, 0% used [0x00000000fec00000,0x00000000fec00000,0x00000000ff100000)
   Metaspace       used 2873K, capacity 4486K, committed 4864K, reserved 1056768K
    class space    used 308K, capacity 386K, committed 512K, reserved 1048576K

日志分析

1、 PSYoungGen total 13824K, used 12017K
表示新生代总共13824K,用了12017k。

2、ParOldGen total 5120K, used 0K
表示老年代没有使用,因为新生代足够大,可以容纳10M的内存, 所以没有触 发GC 因此没有使用到老年代