java gc信息_JVM之GC回收信息详解
新一代垃圾回收器ZGC設(shè)計(jì)與實(shí)現(xiàn)
70.31元
(需用券)
去購買 >
一、-XX:+PrintGCDetails?打印GC日志
參數(shù)配置:-Xms10M -Xmx10M -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps? -Xloggc:F:\gc1.log
-Xloggc:輸出到文件
2020-01-03T14:13:18.866+0800: 0.224: [GC (Allocation Failure) [PSYoungGen: 2048K->496K(2560K)] 2048K->744K(9728K), 0.0128127 secs] [Times: user=0.00 sys=0.00, real=0.01secs]2020-01-03T14:13:18.881+0800: 0.229: [GC (System.gc()) [PSYoungGen: 565K->496K(2560K)] 813K->752K(9728K), 0.0009625 secs] [Times: user=0.02 sys=0.00, real=0.00secs]2020-01-03T14:13:18.882+0800: 0.230: [Full GC (System.gc()) [PSYoungGen: 496K->0K(2560K)] [ParOldGen: 256K->675K(7168K)] 752K->675K(9728K), [Metaspace: 3460K->3460K(1056768K)], 0.0053436 secs] [Times: user=0.00 sys=0.00, real=0.01secs]2020-01-03T14:13:19.889+0800: 1.236: [GC (System.gc()) [PSYoungGen: 117K->128K(2560K)] 793K->803K(9728K), 0.0006856 secs] [Times: user=0.00 sys=0.00, real=0.00secs]2020-01-03T14:13:19.889+0800: 1.237: [Full GC (System.gc()) [PSYoungGen: 128K->0K(2560K)] [ParOldGen: 675K->696K(7168K)] 803K->696K(9728K), [Metaspace: 3475K->3475K(1056768K)], 0.0057842 secs] [Times: user=0.00 sys=0.00, real=0.01secs]
Heap
PSYoungGen total 2560K, used 59K [0x00000000ffd00000, 0x0000000100000000, 0x0000000100000000)
eden space 2048K,2% used [0x00000000ffd00000,0x00000000ffd0ecc0,0x00000000fff00000)
from space 512K,0% used [0x00000000fff00000,0x00000000fff00000,0x00000000fff80000)
to space 512K,0% used [0x00000000fff80000,0x00000000fff80000,0x0000000100000000)
ParOldGen total 7168K, used 696K [0x00000000ff600000, 0x00000000ffd00000, 0x00000000ffd00000)
object space 7168K,9% used [0x00000000ff600000,0x00000000ff6ae138,0x00000000ffd00000)
Metaspace used 3481K, capacity 4500K, committed 4864K, reserved 1056768Kclass space used 381K, capacity 388K, committed 512K, reserved 1048576K
第一行:2020-01-03T14:13:18.866+0800: 0.224: [GC (Allocation Failure) [PSYoungGen: 2048K->496K(2560K)] 2048K->744K(9728K), 0.0128127 secs] [Times: user=0.00 sys=0.00, real=0.01 secs]
GC (Allocation Failure):GC表示YoungGC年輕代垃圾回收;(Allocation Failure)表示內(nèi)存分配失敗;
[PSYoungGen: 2048K->496K(2560K)]:PSYoungGen表示年輕代使用的垃圾回收器是Paralle Scavenge ?;2048K表示年輕代垃圾回收前內(nèi)存占用大小;496K表示年輕代垃圾回收后內(nèi)存占用大小;(2560K)表示年輕代總大小;
2048K->744K(9728K):2048K表示堆內(nèi)存垃圾回收前內(nèi)存占用大小;744K表示堆內(nèi)存垃圾回收后內(nèi)存占用大小;(9728K)表示堆內(nèi)存總大小;
0.0128127 secs:表示YoungGC耗時(shí),單位秒
[Times: user=0.00 sys=0.00, real=0.01 secs]:user=0.00表示用戶耗時(shí),sys=0.00表示系統(tǒng)耗時(shí),real=0.01表示真實(shí)耗時(shí),secs表示時(shí)間單位秒
第二行:2020-01-03T14:13:18.881+0800: 0.229: [GC (System.gc()) [PSYoungGen: 565K->496K(2560K)] 813K->752K(9728K), 0.0009625 secs] [Times: user=0.02 sys=0.00, real=0.00 secs]
[GC (System.gc()):表示系統(tǒng)顯示調(diào)用gc
第三行:2020-01-03T14:13:18.882+0800: 0.230: [Full GC (System.gc()) [PSYoungGen: 496K->0K(2560K)] [ParOldGen: 256K->675K(7168K)] 752K->675K(9728K), [Metaspace: 3460K->3460K(1056768K)], 0.0053436 secs]
[Full GC (System.gc()):Full GC表示YoungGC+OldGC(年輕代垃圾回收+年老代垃圾回收)即整個(gè)JVM內(nèi)存的回收(除了方法區(qū)或者元空間);System.gc()表示系統(tǒng)顯示調(diào)用GC
[PSYoungGen: 496K->0K(2560K)]:PSYoungGen表示年輕代使用的垃圾回收器是Paralle Scavenge??;496K表示Full GC垃圾回收前內(nèi)存占用大小;0K表示Full GC垃圾回收后內(nèi)存占用大小(0是因?yàn)槟贻p代使用的是復(fù)制算法);(2560K)表示年輕代總大小;
752K->675K(9728K):752K表示Full GC垃圾回收前堆內(nèi)存占用大小;675K表示Full GC垃圾回收后堆內(nèi)存占用大小;(9728K)表示堆內(nèi)存總大小;
ParOldGen: 256K->675K(7168K):ParOldGen表示老年代使用的垃圾回收器Parallel?Old,256K表示Full GC垃圾回收前內(nèi)存占用大小;675K表示Full GC垃圾回收后內(nèi)存占用大小;(7168K)表示老年代總大小;
[Metaspace: 3460K->3460K(1056768K)]:Metaspace表示元空間本文使用JDK1.8,3460K:表示Full GC垃圾回收前Metaspace占用大小,3460K表示Full GC垃圾回收后Metaspace占用大小;(1056768K)表示Metaspace總大小。
Full GC分析下可以得出結(jié)論:
新生代變化:496k-0L=496K?新生代減少了496k
老年代變化:256k-675k=-419k(老年代增加了419k)
Heap區(qū)變化:752k-675k=77K?整個(gè)堆減少了 77k
496k – 77K =419K,說明該次共有419k內(nèi)存從年輕代移到了老年代,可以看出來數(shù)量不少,說明大部分對(duì)象的生命周期較長。由于Full?GC會(huì)引發(fā)stop? the?word ,所以我們要盡量避免Full GC的發(fā)生,讓對(duì)象盡可能的在老年代多呆會(huì),所以這里可以增加老年輕代的大小。
第五行:
Heap
PSYoungGen total 2560K, used 59K [0x00000000ffd00000, 0x0000000100000000, 0x0000000100000000)
eden space 2048K, 2% used [0x00000000ffd00000,0x00000000ffd0ecc0,0x00000000fff00000)
from space 512K, 0% used [0x00000000fff00000,0x00000000fff00000,0x00000000fff80000)
to space 512K, 0% used [0x00000000fff80000,0x00000000fff80000,0x0000000100000000)
ParOldGen total 7168K, used 696K [0x00000000ff600000, 0x00000000ffd00000, 0x00000000ffd00000)
object space 7168K, 9% used [0x00000000ff600000,0x00000000ff6ae138,0x00000000ffd00000)
Metaspace used 3481K, capacity 4500K, committed 4864K, reserved 1056768K
class space used 381K, capacity 388K, committed 512K, reserved 1048576K
PSYoungGen total 2560K, used 59K:total 年輕代占用的總內(nèi)存大小2560K,used:表示當(dāng)前使用量
eden space 2048K, 2% used:年輕代的eden區(qū)占用的總內(nèi)存大小2048K,used:已經(jīng)使用2%
from space 512K, 0% used:年輕代的 from s1區(qū)占用的總內(nèi)存大小512K,used:已經(jīng)使用0%
to space 512K, 0% used:年輕代的 from s2區(qū)占用的總內(nèi)存大小512K,used:已經(jīng)使用0%
ParOldGen total 7168K:老年代的總內(nèi)存大小
object space 7168K, 9% used:老年已使用9%
-XX:NewRatio=2:年輕代與老年代的比值1:2, 但是根據(jù)實(shí)際數(shù)據(jù)顯然年輕代沒有占到整個(gè)堆的三分之一,很是費(fèi)解?不知這種誤差是否合理,在這里不吝賜教,求大神指點(diǎn)迷津。
原文鏈接:https://www.cnblogs.com/jalja365/p/12144938.html
java 11官方入門(第8版)教材
79.84元
包郵
(需用券)
去購買 >
總結(jié)
以上是生活随笔為你收集整理的java gc信息_JVM之GC回收信息详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java点击表头可进行排序_table中
- 下一篇: Java用map实现沁园春_QQ飞车:小