JVM的各种参数设置

2018-07-16  本文已影响0人  胖瘦馒头

-xmx[size]堆的最大值

-xms[size] 堆的最大值

-xss[size]栈的容量

-XX:PermSize=[size]JVM初始分配的方法区大小

-XX:MaxPermSize=[size]JVM最大允许分配的方法区大小,按需分配

-XX:MaxDirectMemorySize=[size]本机直接内存的大小;Direct ByteBuffer分配的堆外内存到达指定大小后,即触发Full GC。该值默认是64M,最大为sun.misc.VM.maxDirectMemory()

-XX:+PrintGCDetails JVM在GC时打印内存回收日志,并在进程退出时输出当前的内存各区域的分配情况

-XX:PretenureSizeThreshold 来设置多大的对象直接进入老年代(单位字节) 来设置对象多大时可以直接进入年老代

-XX:MaxTenuringThreshold 来设置对象晋升老年代的年龄阙值

-XX:+HeadDumpOnOutOfMemoryError 控制OutOfMemoryError时打印堆的信息

-XX:+DisableExplicitGC 这个参数作用是禁止代码中显示调用GC

-XX:NewRatio 新生代(eden+2*Survivor)和老年代(不包含永久区)的比值

-XX:SurvivorRatio 设置两个Survivor区和eden区的比值

-XX:+NeverTenure 对象永远不会晋升到老年代

-XX:+AlwaysTenure 表示没有幸存区,所有对象在第一次GC时,会晋升到老年代。

-XX:newSize -XX:MaxNewSize

就像可以通过参数(-Xms and -Xmx)指定堆大小一样,可以通过参数指定新生代大小。设置 XX:MaxNewSize 参数时,应该考虑到新生代只是整个堆的一部分,新生代设置的越大,老年代区域就会减少。一般不允许新生代比老年代还大,因为要考虑GC时最坏情况,所有对象都晋升到老年代。-XX:MaxNewSize 最大可以设置为-Xmx/2.

-XX:+PrintTenuringDistribution 指定JVM 在每次新生代GC时,输出幸存区中对象的年龄分布。

JVM各种参数详解

上一篇下一篇

猜你喜欢

热点阅读