JVM設置:jvm
一、設置合適的最大堆內存(新生代和老生代的最大和值)和最小堆內存(jvm啓動時佔用的操做系統內存大小),及設置好堆的比例分配。性能
二、設置合適的新生代 由於對其對系統性能和GC回收有必定的影響。操作系統
三、設置合適的持久代 由於其直接決定系統能夠支持多少個類定義和多少個常亮。線程
四、設置合適的線程棧 不然系統可能由於線程所需資源和空間不夠而異常退出。對象
五、設置合適的垃圾回收器參數內存
經常使用調優方法:資源
一、將新對象留在新生代,能夠爲新生代對象分配一個合理的內存空間,避免直接向老年代壓縮。由於新生代回收效率高,可以提升GC回收效率。io
二、大對象進入老年代,避免佔用空間過多,致使擠壓新生代進入老年代,致使GC回收效率太低,性能緊張。效率
三、設置對象進入老年代的年齡。垃圾回收
四、設置合適的穩定與震盪對大小。
五、對吞吐量有要求的能夠考慮並行收集器。
六、對於Solaris系統,JVM支持大頁的使用,可以增長CPU的尋址能力,從而提高性能。
七、對於要求下降停頓的,可使用CMS垃圾收集,提升GC性能,較少收集次數。
綜述,對於JVM調優的過程有:肯定對內存大小(-Xmx -Xms)、合理分配新生代(-XX:NewRatio -Xmn -XXSurvivorRatio)和老年代、肯定永久區大小、選擇垃圾收集器、對垃圾收集器進行合理的設置。除此以外,禁用垃圾收集器、禁用元數據、禁用類驗證等也有必定的幫助。