jvm相关參数,调优
常見的jvm參數例如以下
-Xmx1024m:設置JVM最大可用內存為1024M。
-Xms1024m:設置JVM初始內存為1024m。
此值能夠設置與-Xmx同樣,以避免每次垃圾回收完畢后JVM又一次分配內存。
-Xmn512m:設置年輕代大小為512m。
整個JVM內存大小=年輕代大小 + 年老代大小 + 持久代大小。持久代一般固定大小為64m,所以增大年輕代后,將會減小年老代大小。
此值對系統性能影響較大,Sun官方推薦配置為整個堆的3/8。
-Xss128k:設置每一個線程的堆棧大小。
JDK5.0以后每一個線程堆棧大小為1M。曾經每一個線程堆棧大小為256K。更具應用的線程所需內存大小進行調整。在同樣物理內存下,減小這個值能生成很多其它的線程。
可是操作系統對一個進程內的線程數還是有限制的,不能無限生成。經驗值在3000~5000左右。
-XX:NewRatio=4:設置年輕代(包含Eden和兩個Survivor區)與年老代的比值(除去持久代)。設置為4,則年輕代與年老代所占比值為1:4。年輕代占整個堆棧的1/5
-XX:SurvivorRatio=4:設置年輕代中Eden區與Survivor區的大小比值。設置為4,則兩個Survivor區與一個Eden區的比值為2:4,一個Survivor區占整個年輕代的1/6
-XX:MaxPermSize=16m:設置持久代大小為16m。
-XX:MaxTenuringThreshold=0:設置垃圾最大年齡。假設設置為0的話,則年輕代對象不經過Survivor區。直接進入年老代。
對于年老代比較多的應用,能夠提高效率。假設將此值設置為一個較大值,則年輕代對象會在Survivor區進行多次復制。這樣能夠添加對象再年輕代的存活時間,添加在年輕代即被回收的概論。
JVM垃圾回收打印日志。
-XX:+PrintGC
輸出形式:[GC 118250K->113543K(130112K), 0.0094143 secs]
? ? ? ? ? ? ? ? [Full GC 121376K->10414K(130112K), 0.0650971 secs]
-XX:+PrintGCDetails
輸出形式:[GC [DefNew: 8614K->781K(9088K), 0.0123035 secs] 118250K->113543K(130112K), 0.0124633 secs]
? ? ? ? ? ? ? ? [GC [DefNew: 8614K->8614K(9088K), 0.0000665 secs][Tenured: 112761K->10414K(121024K), 0.0433488 secs] 121376K->10414K(130112K), 0.0436268 secs]
ps:”[GC 1“ 和“[Full GC?”說明了垃圾回收停頓的類型?!癋ull”代表“stop-the-world”?
“DefNew” ?“Tenured” “Perm”代表GC發生的區域。它與使用的GC收集器有關
“8614K->781K(9088K)” 含義“GC前該區域已使用容量->GC后已使用容量(該區域總容量)”
“0.0094143 secs”表示該區域內GC用時,單位秒
-Dsun.awt.keepWorkingSetOnMinimize=true GUI程序最小化到任務欄時依舊保持以占有的內存。當你又一次回到程序,可以被高速顯示,加快回復到原界面的速度。
轉載于:https://www.cnblogs.com/blfbuaa/p/6735792.html
總結
以上是生活随笔為你收集整理的jvm相关參数,调优的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HttpClient 发送 HTTP、H
- 下一篇: webpack2入门概念