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優化經驗總結

相關文章
相關標籤/搜索