JVM底层原理之元空间MetaspaceSize


1、JVM常用参数

-Xms                            初始堆内存大小,默认物理内存64/1
                                -Xms = -XX:InitialHeapSize
-Xmx                            最大堆内存,默认物理内存4/1
                                -Xmx = -XX:MaxHeapSize
-Xss                            栈内存大小
                                设置单个线程栈大小,一般默认512~1024kb。
                                 单个线程栈大小跟操作系统和JDK版本都有关系
                                 -Xss = -XX:ThreadStackSize
-Xmn                            年轻代大小
-XX:MetaspaceSize               元空间大小
                                元空间本质跟永久代类似,都是对JVM规范中方法区的实现。
                                不过元空间与永久代最大的区别在于:元空间并不在虚拟机中,而是使用本机内存。
                                因此,元空间大小仅受本地内存限制。
-XX:+PrintGCDetails             打印GC详细日志信息
-XX:SurvivorRatio               幸存者比例设置
-XX:NewRatio                    新生代比例设置
-XX:MaxTenuringThreshold        进入老年代阈值设置

 

2、查看元空间MetaspaceSize默认值


(1)java -XX:+PrintFlagsInitial


uintx MetaspaceSize                             = 21810376(大约20.80MB)                            {pd product}

(2)JVM常用参数案例
【1】默认JVM命令行参数

-XX:InitialHeapSize=265858688

-XX:MaxHeapSize=4253739008

-XX:+PrintCommandLineFlags

-XX:+UseCompressedClassPointers

-XX:+UseCompressedOops

-XX:-UseLargePagesIndividualAllocation

-XX:+UseParallelGC

 

【2】JVM常用参数设置

       -Xms128m -Xmx4096m -Xss1024k -XX:MetaspaceSize=512m -XX:+PrintCommandLineFlags -XX:+PrintGCDetails -XX:+UseSerialGC

       设置完毕之后,运行程序如下:

       

      

      -XX:InitialHeapSize=134217728

      -XX:MaxHeapSize=4294967296

      -XX:MetaspaceSize=536870912

      -XX:+PrintCommandLineFlags

      -XX:+PrintGCDetails

      -XX:ThreadStackSize=1024

      -XX:+UseCompressedClassPointers

      -XX:+UseCompressedOops

      -XX:-UseLargePagesIndividualAllocation

      -XX:+UseSerialGC

【3】Java1.8默认垃圾回收器

       -XX:+UseParallelGC 并行垃圾回收器(默认)

       -XX:+UseSerialGC   串行垃圾回收器
 

你可能感兴趣的:(工具使用,java)