美文网首页
虚拟机参数

虚拟机参数

作者: FlySheep_ly | 来源:发表于2017-04-26 20:50 被阅读27次

    一、堆分配参数

    -XX:+PrintGC  使用这个参数,虚拟机启动后,只要遇到GC就会打印日志。
    -XX:+UseSerialGC  配置串行回收器
    -XX:+PrintGCDetails  可以查看详细信息,包括各个区的情况
    -XX:+PrintCommandLineFlags  可以将显式或隐式传给虚拟机的参数输出
    -Xms  设置Java程序启动时初始堆大小
    -Xmx  设置Java程序能获得的最大堆大小
    -Xmx20m -Xms5m  示例设置最大堆大小20M,初始堆大小5M
    

    在实际工作中,我们可以直接将初始的堆大小与最大堆大小设置相等,这样的好处是可以减少程序运行时的垃圾回收次数,从而提高性能。

    二、新生代的配置

    -Xmn:可以设置新生代的大小,设置一个比较大的新生代会减少老年代的大小,这个参数对系统性能以及GC行为有很大的影响,新生代大小一般会设置整个堆空间的1/3到1/4左右。
      -XX:SurvivorRatio:用来设置新生代中eden空间和from/to空间的比例。含义:-XX:SurvivorRatio=eden/from=eden/to
      -XX:NewRatio:设置新生代和老年代的比例。-XX:NewRatio=老年代/新生代。
      总结:不同的堆分布情况,对系统执行会产生一定的影响,在实际工作中,应该根据系统的特点作出合理的配置,基本策略:尽可能将对象预留在新生代,减少老年代的GC次数。

    三、栈配置

    Java 虚拟机提供了参数 -Xss 来指定线程的最大栈空间,整个参数也直接决定了函数可调用的最大深度。

    相关文章

      网友评论

          本文标题:虚拟机参数

          本文链接:https://www.haomeiwen.com/subject/lwfizttx.html