JVM調優(四)常用調優方案

將新對象預留到新生代

由於Full GC的成本要遠遠高於Minor GC,因此儘可能的將對象分配在新生代是一項明智的選擇。 大部分情況下,jvm會嘗試在eden區域分配對象,但是因爲空間緊張等問題,很可能不得不將部分年輕對象提前向老年代壓縮。因此,可以爲程序分配一個合理的新生代空間,以最大限度避免新對象直接進入老年代的情況。

一般來說,當survivor區的空間不夠,或者佔用量達到50%時,就會將對象進入老年代,不管對象的年齡有多大。解決辦法是可以增大from區或者提高from區的利用率。使用以下參數,均可以將新對象留在新生代


大對象進入老年代


如果需要將1mb以上的對象直接分配到老年代,可以使用如下參數:

-XX:+PrintGCDetails -Xmx20MB -Xms20MB -XX:PretenureThreshold=1000000

設置對象進入老年代的年齡



穩定堆與震盪堆的選擇



關注吞吐量的案例參考



關注降低停頓的案例



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章