常用 JVM 命令参数解析

  • -Xms20M
    设置堆容量的最小值为20M,必须以M为单位
  • -Xmx20M
    设置堆容量的最大值为20M,必须以M为单位。将-Xmx和-Xms设置为一样可以避免堆自动扩展。大的项目-Xmx和-Xms一般都要设置到15G、25G甚至还要高。

  • -verbose:gc

    输出虚拟机中GC的详细情况。

  • -Xss256k
    设置虚拟机栈的大小为256k。

  • -Xoss128k
    设置本地方法栈的大小为128k。不过HotSpot并不区分虚拟机栈和本地方法栈,因此对于HotSpot来说这个参数是无效的

  • -XX:PermSize=64M

    JVM初始分配的永久代的容量,必须以M为单位,大部分情况下这个参数默认为64M。

  • -Xnoclassgc
    关闭JVM对类的垃圾回收。

  • -XX:+TraceClassLoading
    查看类的加载信息。

  • -XX:+TraceClassUnLoading

    查看类的卸载信息。

  • -XX:NewRatio=4
    设置年轻代:老年代的大小比值为1:4,这意味着年轻代占整个堆的1/5。

  • -XX:SurvivorRatio=8

    设置2个Survivor区:1个Eden区的大小比值为2:8,这意味着Survivor区占整个年轻代的1/5,这个参数默认为8。

  • -Xmn30M

    设置年轻代的大小为20M。

  • -XX:+HeapDumpOnOutOfMemoryError
    可以让虚拟机在出现内存溢出异常时Dump出当前的堆内存转储快照。

  • -XX:+UseG1GC

    让JVM使用G1垃圾收集器。

  • -XX:+PrintGCDetails

    在控制台上打印出GC具体细节。

  • -XX:+PrintGC
    在控制台上打印出GC信息。

  • -XX:PretenureSizeThreshold=5242880

    表示对象大于5242880(5M)时直接进入老年代分配,这里只能以字节作为单位。

  • -XX:MaxTenuringThreshold=2
    表示对象年龄大于1,自动进入老年代。

  • -XX:CompileThreshold=600

    表示一个方法被调用600次之后,会被认为是热点代码,并触发即时编译。

  • -XX:+PrintHeapAtGC
    可以看到每次GC前后堆内存布局。

  • -XX:+PrintTLAB
    表示可以看到TLAB的使用情况。

  • -XX:+UseSpining
    开启自旋锁。

  • -XX:PreBlockSpin
    更改自旋锁的自旋次数,使用这个参数必须先开启自旋锁。

如有不准确,还请见谅。

猜你喜欢

转载自blog.csdn.net/qq_25406669/article/details/80103171