JVM参数

  • -Xms-Xmx Xms和-Xmx,分别用于设置Java堆内存的刚开始的大小,以及允许扩张到的最大大小 对于这对参数,通常来说,都会设置为完全一样的大小。
  • -Xmn:Java堆内存中的新生代大小,扣除新生代剩下的就是老年代的内存大小了
  • -XX:PermSize -XX:MaxPermSize:分别限定了永久代大小和永久代的最大大小,通常这两个数值也是设置为一样的
  • -Xss:每个线程的栈内存大小
  • 比如说采用“java -jar”的方式启动一个jar包里的系统,那么就可以采用类似下面的格式:java -Xms512M -Xmx512M -Xmn256M -Xss1M -XX:PermSize=128M -XX:MaxPermSize=128M -jar App.jar
  • -XX:MaxTenuringThreshold :最大分代年龄限制,超过则进入老年代
  • -XX:PretenureSizeThreshold 大对象限制,大小超过此设置的对象直接进入老年代
  • -XX:SurvivorRatio 它定义了新生代中Eden区域和Survivor区域(From幸存区或To幸存区)的比例,默认为8,也就是说Eden占新生代的8/10,From幸存区和To幸存区各占新生代的1/10

    G1

    • -XX:G1NewSizePercent参数是用来设置新生代初始占比的,不用设置,维持默认值为5%即可。
    • -XX:G1MaxNewSizePercent参数是用来设置新生代最大占比的,也不用设置,维持默认值为60%即可。
    • -XX:MaxGCPauseMills,他的默认值是200毫秒 最大GC停顿时间

    日志参数

    • -XX:+PrintGCDetils打印详细的gc日志
    • -XX:+PrintGCTimeStamps这个参数可以打印出来每次GC发生的时间
    • -Xloggc:gc.log这个参数可以设置将gc日志写入一个磁盘文件