The NoteBook of EricKong

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks

          不同的JVM及其選項會輸出不同的日志。

          GC 日志

          生成下面日志使用的選項: -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:d:/GClogs/tomcat6-gc.log

          4.231: [GC 4.231: [DefNew: 4928K->512K(4928K), 0.0044047 secs] 6835K->3468K(15872K), 0.0045291 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
           
          4.445: [Full GC (System) 4.445: [Tenured: 2956K->3043K(10944K), 0.1869806 secs] 4034K->3043K(15872K), [Perm : 3400K->3400K(12288K)], 0.1870847 secs] [Times: user=0.05 sys=0.00, real=0.19 secs] 
          

          最前面的數字 4.231  4.445 代表虛擬機啟動以來的秒數。

          [GC  [Full GC 是垃圾回收的停頓類型,而不是區分是新生代還是年老代,如果有 Full 說明發生了 Stop-The-World 。如果是調用 System.gc() 觸發的,那么將顯示的是 [Full GC (System) 

          接下來的 [DefNew, [Tenured, [Perm 表示 GC 發生的區域,區域的名稱與使用的 GC 收集器相關。 Serial 收集器中新生代名為 "Default New Generation",顯示的名字為 "[DefNew"。對于ParNew收集器,顯示的是 "[ParNew",表示 “Parallel New Generation”。 對于 Parallel Scavenge 收集器,新生代名為 "PSYoungGen"。年老代和永久代也相同,名稱都由收集器決定。

          方括號內部顯示的 “4928K->512K(4928K)” 表示 “GC 前該區域已使用容量 -> GC 后該區域已使用容量 (該區域內存總容量) ”。

          再往后的 “0.0044047 secs” 表示該區域GC所用時間,單位是秒。

          再往后的 “6835K->3468K(15872K)” 表示 “GC 前Java堆已使用容量 -> GC后Java堆已使用容量 (Java堆總容量)”。

          再往后的 “0.0045291 secs” 是Java堆GC所用的總時間。

          最后的 “[Times: user=0.00 sys=0.00, real=0.00 secs]” 分別代表 用戶態消耗的CPU時間、內核態消耗的CPU時間 和 操作從開始到結束所經過的墻鐘時間。墻鐘時間包括各種非運算的等待耗時,如IO等待、線程阻塞。CPU時間不包括等待時間,當系統有多核時,多線程操作會疊加這些CPU時間,所以user或sys時間會超過real時間。

          堆的分代

          JVM-heap-generations

          在上圖中:

          • young區域就是新生代,存放新創建對象;
          • tenured是年老代,存放在新生代經歷多次垃圾回收后仍存活的對象;
          • perm是永生代,存放類定義信息、元數據等信息。

          當GC發生在新生代時,稱為Minor GC,次收集;當GC發生在年老代時,稱為Major GC,主收集。 一般的,Minor GC的發生頻率要比Major GC高很多。

          posted on 2015-06-18 11:28 Eric_jiang 閱讀(258) 評論(0)  編輯  收藏 所屬分類: JVM
          主站蜘蛛池模板: 措勤县| 都兰县| 浑源县| 恩平市| 蕲春县| 桐城市| 刚察县| 南京市| 大竹县| 陇南市| 盘山县| 泗阳县| 祁门县| 永安市| 临湘市| 凌云县| 莲花县| 余姚市| 五大连池市| 定边县| 柳江县| 尚志市| 普洱| 辰溪县| 平陆县| 华池县| 鄄城县| 宁晋县| 贵州省| 延寿县| 陆川县| 古浪县| 潜山县| 绿春县| 海伦市| 明光市| 随州市| 许昌县| 平塘县| 永福县| 平果县|