java内存设置参数

一、XmnXmsXmxXss有什么区别

首先,Xmn、Xms、Xmx、Xss都是JVM对内存的配置参数,咱们能够根据不一样须要区修改这些参数,以达到运行程序的最好效果。html

 

Xms、Xmxjava

-Xms、-Xmx分配用来设置进程堆内存的最小大小和最大大小。通常来讲,为了不频繁的堆内存震荡,致使系统性能降低,这两个值设为相等。jvm

 

Xmn性能

-Xmn用来设置堆内新生代的大小。经过这个值咱们也能够获得老生代的大小:-Xmx减去-Xmn优化

 

Xssspa

-Xss设置每一个线程可以使用的内存大小。操作系统

在相同物理内存下,减少这个值能生成更多的线程。固然操做系统对一个进程内的线程数仍是有限制的,不能无限生成,经验值在3000~5000左右。线程

除了这些配置,JVM还有很是多的配置,经常使用的以下:日志

  1. -XX:PermSize、-XX:MaxPermSize 
    分配用来设置永久代的最小大小和最大大小。Java 8之后移除了方法区,取而代之的是本地元空间Metaspace,大小由-XX:MetaspaceSize和-XX:MaxMetaspaceSize调节。htm

  2. -XX:MaxTenuringThreshold 
    设置转入老生代的存活次数。若是是0,则直接跳过新生代进入老生代。

  3. -XX:NewRatio 
    设置老生代和新生代的比值,例如该值为3,则表示新生代与老生代比值为1:3。

  4. –XX:+SurvivorRatio  设置Eden区与survivor的比例

  5. -XX:PetenureSizeThreshold

        设置大对象进入年老代的阈值(单位:byte),若是对象大小超过这个值,则直接在年老代进行分配,只对串行收集器和年轻代并行收集器有效,并行回收收集器不识别这个参数。

    -XX:+PrintGCDetails

        打印GC回收的过程日志

    -XX:+UseParallelGC   新生代使用并行GC回收,能够尽量的减小GC回收的时间

    –XX:ParallelGC-Threads:设置用于垃圾回收的线程数,一般状况下,能够设置和 CPU 数量相等。但在     CPU 数量比较多的状况下,设置相对较小的数值也是合理的;

    –XX:+UseParallelOldGC:设置年老代使用并行回收收集器。

 

参考:JVM优化经验总结

相关文章
相关标签/搜索