面试官:JVM调优的常用基本配置参数有哪些?

平时工作用过的JVM常用基本配置参数有哪些

-Xms -Xmx -Xmn

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

分为K-V设值类型和布尔类型:
K-V设值类型:
  • KV设值类型

    公式:-XX:属性key=属性值value

    case:

    -XX:MetaspaceSize=128m

    -XX:MaxTenuringThreshold=15

    -Xms----> -XX:InitialHeapSize

    -Xmx----> -XX:MaxHeapSize

  • Boolean类型:

  • 公式:-XX+或者-某个属性值 +表示开启,-表示关闭

    是否打印GC收集细节 -XX:+PrintGCDetails 开启 -XX:-PrintGCDetails 关闭

    是否使用串行垃圾回收器:-XX:-UseSerialGC


具体参数:
  • -Xms

    初始大小内存,默认为物理内存1/64,等价于-XX:InitialHeapSize

  • -Xmx

    最大分配内存,默认物理内存1/4,等价于-XX:MaxHeapSize

  • -Xss

    设置单个线程栈的大小,默认542K~1024K ,等价于-XX:ThreadStackSize

  • -Xmn

    设置年轻代的大小

  • -XX:MetaspaceSize

    设置元空间大小

    元空间的本质和永久代类似,都是对JVM规范中方法区的实现,不过元空间与永久代最大的区别在于:元空间并不在虚拟机中,而是在本地内存中。 因此,默认元空间的大小仅受本地内存限制

  • -XX:+PrintGCDetails

    输出详细GC收集日志信息

    [名称:GC前内存占用->GC后内存占用(该区内存总大小)]

  • -XX:SurvivorRatio

    设置新生代中Eden和S0/S1空间的比例

    默认-XX:SurvivorRatio=8,Eden:S0:S1=8:1:1

  • -XX:NewRatio

    设置年轻代与老年代在堆结构的占比

    默认-XX:NewRatio=2 新生代在1,老年代2,年轻代占整个堆的1/3

    NewRatio值若为k,则老年代占比:新生代占比 = k : 1

  • -XX:MaxTenuringThreshold

    设置垃圾的最大年龄

    默认-XX:MaxTenuringThreshold=15

    如果设置为0,年轻代对象不经过Survivor区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大的值,则年轻代对象回在Survivor区进行多次复制,这样可以增加对对象在年轻代的存活时间,增加在年轻代即被回收的概率。

  • -XX:+UseSerialGC

    串行垃圾回收器

  • -XX:+UseParallelGC

    并行垃圾回收器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值