JVM堆中的配置参数

堆内存特性

1)、新生代内存 = eden区内存 + from区内存 +to区内存 ,from区内存 = to区内存;

2)、新生代可用内存 = eden区内存 + from区内存(复制算法需要预留一个survivor区);

3)、堆空间内存 = 新生代内存 + 老年代内存;

4)、默认情况下,eden区内存:from区内存:to区内存 = 8:1:1;

5)、默认情况下,新生代内存:老年代内存=1:2。

堆内存配置参数

1)、-XX:NewSize:设置新生代的初始内存大小;-XX:MaxNewSize:设置新生代最大内存大小;

2)、-Xmn,设置新生代的内存大小,初始内存大小=最大内存大小;

3)、-XX:SurvivorRatio:1个eden区与1个survivor区的比例,默认为8;

4)、-XX:NewRatio:老年代内存与新生代的比例,默认为2。

举例说明堆内存特性以及多个堆内存配置参数的同时使用的情况

【设置JVM参数】设置堆空间大小为40M

package com.su.mybatis.oracle.controller;

public class Test {

    public static void main(String[] args) {
        String s = new String("123");
    }
}

1、堆内存特性,-Xmx40M -Xms40M -XX:+PrintGCDetails

输出结果:

Heap
 def new generation   total 12288K, used 876K [0x31d00000, 0x32a50000, 0x32a50000)
  eden space 10944K,   8% used [0x31d00000, 0x31ddb070, 0x327b0000)
  from space 1344K,   0% used [0x327b0000, 0x327b0000, 0x32900000)
  to   space 1344K,   0% used [0x32900000, 0x32900000, 0x32a50000)
 tenured generation   total 27328K, used 0K [0x32a50000, 0x34500000, 0x34500000)
   the space 27328K,   0% used [0x32a50000, 0x32a50000, 0x32a50200, 0x34500000)
 compacting perm gen  total 12288K, used 153K [0x34500000, 0x35100000, 0x38500000)
   the space 12288K,   1% used [0x34500000, 0x34526780, 0x34526800, 0x35100000)
    ro space 10240K,  44% used [0x38500000, 0x38977808, 0x38977a00, 0x38f00000)
    rw space 12288K,  52% used [0x38f00000, 0x3954e610, 0x3954e800, 0x39b00000)

2、-XX:NewSize和-XX:MaxNewSize的使用,-Xmx40M -Xms40M -XX:NewSize=10M -XX:MaxNewSize=10M -XX:+PrintGCDetails

输出结果:

Heap
 def new generation   total 9216K, used 876K [0x31d00000, 0x32700000, 0x32700000)
  eden space 8192K,  10% used [0x31d00000, 0x31ddb148, 0x32500000)
  from space 1024K,   0% used [0x32500000, 0x32500000, 0x32600000)
  to   space 1024K,   0% used [0x32600000, 0x32600000, 0x32700000)
 tenured generation   total 30720K, used 0K [0x32700000, 0x34500000, 0x34500000)
   the space 30720K,   0% used [0x32700000, 0x32700000, 0x32700200, 0x34500000)
 compacting perm gen  total 12288K, used 153K [0x34500000, 0x35100000, 0x38500000)
   the space 12288K,   1% used [0x34500000, 0x34526780, 0x34526800, 0x35100000)
    ro space 10240K,  44% used [0x38500000, 0x38977808, 0x38977a00, 0x38f00000)
    rw space 12288K,  52% used [0x38f00000, 0x3954e610, 0x3954e800, 0x39b00000)

3、-Xmn的使用,-Xmx40M -Xms40M -XX:+PrintGCDetails -Xmn5M

输出结果:

Heap
 def new generation   total 4608K, used 776K [0x31d00000, 0x32200000, 0x32200000)
  eden space 4096K,  18% used [0x31d00000, 0x31dc2310, 0x32100000)
  from space 512K,   0% used [0x32100000, 0x32100000, 0x32180000)
  to   space 512K,   0% used [0x32180000, 0x32180000, 0x32200000)
 tenured generation   total 35840K, used 0K [0x32200000, 0x34500000, 0x34500000)
   the space 35840K,   0% used [0x32200000, 0x32200000, 0x32200200, 0x34500000)
 compacting perm gen  total 12288K, used 153K [0x34500000, 0x35100000, 0x38500000)
   the space 12288K,   1% used [0x34500000, 0x34526780, 0x34526800, 0x35100000)
    ro space 10240K,  44% used [0x38500000, 0x38977808, 0x38977a00, 0x38f00000)
    rw space 12288K,  52% used [0x38f00000, 0x3954e610, 0x3954e800, 0x39b00000)

4、-XX:SurvivorRatio的使用,-Xmx40M -Xms40M -XX:+PrintGCDetails -XX:SurvivorRatio=4

输出结果:

Heap
 def new generation   total 11392K, used 987K [0x31d00000, 0x32a50000, 0x32a50000)
  eden space 9152K,  10% used [0x31d00000, 0x31df6f90, 0x325f0000)
  from space 2240K,   0% used [0x325f0000, 0x325f0000, 0x32820000)
  to   space 2240K,   0% used [0x32820000, 0x32820000, 0x32a50000)
 tenured generation   total 27328K, used 0K [0x32a50000, 0x34500000, 0x34500000)
   the space 27328K,   0% used [0x32a50000, 0x32a50000, 0x32a50200, 0x34500000)
 compacting perm gen  total 12288K, used 153K [0x34500000, 0x35100000, 0x38500000)
   the space 12288K,   1% used [0x34500000, 0x34526780, 0x34526800, 0x35100000)
    ro space 10240K,  44% used [0x38500000, 0x38977808, 0x38977a00, 0x38f00000)
    rw space 12288K,  52% used [0x38f00000, 0x3954e610, 0x3954e800, 0x39b00000)

5、-XX:NewRatio的使用,-Xmx40M -Xms40M -XX:+PrintGCDetails -XX:NewRatio=4

输出结果:

Heap
 def new generation   total 7424K, used 803K [0x31d00000, 0x32500000, 0x32500000)
  eden space 6656K,  12% used [0x31d00000, 0x31dc8c30, 0x32380000)
  from space 768K,   0% used [0x32380000, 0x32380000, 0x32440000)
  to   space 768K,   0% used [0x32440000, 0x32440000, 0x32500000)
 tenured generation   total 32768K, used 0K [0x32500000, 0x34500000, 0x34500000)
   the space 32768K,   0% used [0x32500000, 0x32500000, 0x32500200, 0x34500000)
 compacting perm gen  total 12288K, used 153K [0x34500000, 0x35100000, 0x38500000)
   the space 12288K,   1% used [0x34500000, 0x34526728, 0x34526800, 0x35100000)
    ro space 10240K,  44% used [0x38500000, 0x38977808, 0x38977a00, 0x38f00000)
    rw space 12288K,  52% used [0x38f00000, 0x3954e610, 0x3954e800, 0x39b00000)

6、-XX:NewSize/-XX:MaxNewSize与-Xmn同时使用,且-XX:NewSize/-XX:MaxNewSize在前,-Xmx40M -Xms40M -XX:NewSize=10M -XX:MaxNewSize=10M -XX:+PrintGCDetails   -Xmn5M

输出结果:

Heap
 def new generation   total 4608K, used 776K [0x31d00000, 0x32200000, 0x32200000)
  eden space 4096K,  18% used [0x31d00000, 0x31dc2310, 0x32100000)
  from space 512K,   0% used [0x32100000, 0x32100000, 0x32180000)
  to   space 512K,   0% used [0x32180000, 0x32180000, 0x32200000)
 tenured generation   total 35840K, used 0K [0x32200000, 0x34500000, 0x34500000)
   the space 35840K,   0% used [0x32200000, 0x32200000, 0x32200200, 0x34500000)
 compacting perm gen  total 12288K, used 153K [0x34500000, 0x35100000, 0x38500000)
   the space 12288K,   1% used [0x34500000, 0x34526728, 0x34526800, 0x35100000)
    ro space 10240K,  44% used [0x38500000, 0x38977808, 0x38977a00, 0x38f00000)
    rw space 12288K,  52% used [0x38f00000, 0x3954e610, 0x3954e800, 0x39b00000)

7、-XX:NewSize/-XX:MaxNewSize与-Xmn同时使用,且-Xmn在前,-Xmx40M -Xms40M -XX:NewSize=10M -XX:MaxNewSize=10M -XX:+PrintGCDetails   -Xmn5M

输出结果:

Heap
 def new generation   total 9216K, used 876K [0x31d00000, 0x32700000, 0x32700000)
  eden space 8192K,  10% used [0x31d00000, 0x31ddb148, 0x32500000)
  from space 1024K,   0% used [0x32500000, 0x32500000, 0x32600000)
  to   space 1024K,   0% used [0x32600000, 0x32600000, 0x32700000)
 tenured generation   total 30720K, used 0K [0x32700000, 0x34500000, 0x34500000)
   the space 30720K,   0% used [0x32700000, 0x32700000, 0x32700200, 0x34500000)
 compacting perm gen  total 12288K, used 153K [0x34500000, 0x35100000, 0x38500000)
   the space 12288K,   1% used [0x34500000, 0x34526728, 0x34526800, 0x35100000)
    ro space 10240K,  44% used [0x38500000, 0x38977808, 0x38977a00, 0x38f00000)
    rw space 12288K,  52% used [0x38f00000, 0x3954e610, 0x3954e800, 0x39b00000)

6与7对比得出结论:-XX:NewSize/-XX:MaxNewSize与-Xmn同时存在时,后面的配置生效,或者理解为后面的配置会覆盖前面的配置。

8、-Xmn与-XX:SurvivorRatio同时使用,不会冲突,都会生效,-Xmx40M -Xms40M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=4

输出结果:

Heap
 def new generation   total 8576K, used 854K [0x31d00000, 0x32700000, 0x32700000)
  eden space 6912K,  12% used [0x31d00000, 0x31dd5940, 0x323c0000)
  from space 1664K,   0% used [0x323c0000, 0x323c0000, 0x32560000)
  to   space 1664K,   0% used [0x32560000, 0x32560000, 0x32700000)
 tenured generation   total 30720K, used 0K [0x32700000, 0x34500000, 0x34500000)
   the space 30720K,   0% used [0x32700000, 0x32700000, 0x32700200, 0x34500000)
 compacting perm gen  total 12288K, used 153K [0x34500000, 0x35100000, 0x38500000)
   the space 12288K,   1% used [0x34500000, 0x34526728, 0x34526800, 0x35100000)
    ro space 10240K,  44% used [0x38500000, 0x38977808, 0x38977a00, 0x38f00000)
    rw space 12288K,  52% used [0x38f00000, 0x3954e610, 0x3954e800, 0x39b00000)

9、堆空间内存固定(-Xmx、-Xms),新生代大小固定(-Xmn或者-XX:NewSize/-XX:MaxNewSize),-XX:NewRatio不会生效,与配置参数顺序无关

1)、-Xmx40M -Xms40M  -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=4 -XX:NewRatio=8

2)、-Xmx40M -Xms40M  -XX:+PrintGCDetails -XX:SurvivorRatio=4 -XX:NewRatio=8  -Xmn10M

3)、-Xmx40M -Xms40M -XX:NewSize=10M -XX:MaxNewSize=10M -XX:+PrintGCDetails -XX:SurvivorRatio=4 -XX:NewRatio=8

4)、-Xmx40M -Xms40M  -XX:+PrintGCDetails -XX:SurvivorRatio=4 -XX:NewRatio=8  -XX:NewSize=10M -XX:MaxNewSize=10M

输出结果(相同):

Heap
 def new generation   total 8576K, used 854K [0x31d00000, 0x32700000, 0x32700000)
  eden space 6912K,  12% used [0x31d00000, 0x31dd5940, 0x323c0000)
  from space 1664K,   0% used [0x323c0000, 0x323c0000, 0x32560000)
  to   space 1664K,   0% used [0x32560000, 0x32560000, 0x32700000)
 tenured generation   total 30720K, used 0K [0x32700000, 0x34500000, 0x34500000)
   the space 30720K,   0% used [0x32700000, 0x32700000, 0x32700200, 0x34500000)
 compacting perm gen  total 12288K, used 153K [0x34500000, 0x35100000, 0x38500000)
   the space 12288K,   1% used [0x34500000, 0x34526728, 0x34526800, 0x35100000)
    ro space 10240K,  44% used [0x38500000, 0x38977808, 0x38977a00, 0x38f00000)
    rw space 12288K,  52% used [0x38f00000, 0x3954e610, 0x3954e800, 0x39b00000)

 

 

如果有写的不对的地方,请大家多多批评指正,非常感谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值