目錄 一.簡介 二.猜你喜歡 零基礎 OpenGL (ES) 學習路線推薦 : OpenGL (ES) 學習目錄 >> OpenGL ES 基礎 零基礎 OpenGL (ES) 學習路線推薦 : OpenGL (ES) 學習目錄 >> OpenGL ES 轉場 零基礎 OpenGL (ES) 學習路 ...
下文筆者講述java中JVM參數的簡介說明,如下所示:
JVM參數類型說明
常見的JVM參數類型如下: 1.標準的jvm參數 -version -help 2.X非標準參數, -Xms -Xmx 3.XX不穩定參數, -XX:+PrintGC 設置這些參數會引起JVM性能差異 可能導致JVM性能提升,也可導致JVM異常而停止服務 註意事項: -X和-XX參數可能隨著JDK版本的變更而發生變化 在下一個版本中有些參數可以能會被廢棄掉, 有些參數的功能會發生改變 但JDK官方不會通知開發者這些變化,需要使用者註意
XX參數數值類型
1.布爾類型 , 如-XX:+PrintGCDetails 其中+和- +代表開啟功能 -代表關閉功能 2.KV 屬性設置 如-XX:NewSize=512M 設置年輕代空間大小為512M
常用參數
參數 | 功能 | 預設值 | 示例 | 備註 |
-Xms | 初始堆大小 | 物理記憶體64分之一 | -Xms=512M | |
-Xmx | 最大堆大小 | 物理記憶體4分之一 | -Xmx=512M | 筆者建議同-Xms設置同樣的值 |
-Xmn | 新生代大小 | -Xmn=512M | 儘量設置小一點 | |
-Xss | 指定線程棧大小 | -Xss=512M | webx下需要設置256K |
X其它參數-列印GC信息到文件
-Xloggc:/log/gc_%t_%p.log:將gc信息列印到指定的文件中,通過時間戳生成文件名
XX參數
-XX:NewSize:設置年輕代最小空間大小 -XX:MaxNewSize:設置年輕代最大空間大小 -XX:PermSize:設置永久代最小空間大小 -XX:MaxPermSize:設置永久代最大空間大小 -XX:NewRatio:設置年輕代和老年代的比值。預設值-XX:NewRatio=2,表示年輕代與老年代比值為1:2,年輕代占整個堆大小的1/3 -XX:SurvivorRatio:設置年輕代中Eden區Survivor區的容量比值。預設值-XX:SurvivorRatio=8,表示Eden : Survivor0 : Survivor1 = 8 : 1 : 1 -XX:-OmitStackTraceInFastThrow:關閉(省略異常棧從而快速拋出),預設開啟。如果想將所有異常信息都拋出,建議關閉。 -XX:+HeapDumpOnOutOfMemoryError:表示當JVM發生OOM時,自動生成DUMP文件。 -XX:HeapDumpPath=/usr/local/dump:dump文件路徑或者名稱。如果不指定文件名,預設為:java_<pid>_<date>_<time>_heapDump.hprof
GC日誌
在設置JVM參數的時候
可以設置GC列印日誌參數
-XX:+PrintGCDetails
日誌列簡介說明 GC:表示進行了一次Minor GC,即從年輕代空間(包括 Eden 和 Survivor 區域)回收記憶體 Allocation Failure:在年輕代中沒有足夠的空間能夠存儲新的數據 Full GC (Ergonomics):表示進行了一次Full GC,即清理整個堆空間(包含年輕代和老年代) PSYoungGen: 1024K->1024K(1488K):垃圾回收器是Paralle Scavenge,年輕代區GC前->GC後該區域已使用量,後面的1488表示該區域總量 ParOldGen: 4011K->4011K(4082K)老年代區,GC前->GC後該區域已使用量,後面的4082表示該區域總量 5032K->5032K(5899K):GC前 -> GC後Java堆的使用量,後面的5899表示Java堆總量 Metaspace: 3117K->3117K(1056768K):JDK8中取消了永久代,新增了一個叫元空間(Metaspace)的區域,對應的還是JVM規範中的方法區(主要存放一些class和元數據的信息),該數據表示該區GC前後使用量 0.0118131 secs:暫停STW 時間,即GC的時間 Times: user=0.01 sys=0.01, real=0.01 secs:更為詳細的時間占比統計
轉自:http://www.java265.com/JavaCourse/202204/2648.html