前言
最近学习分析了一下java8的GC日志,顺便记录下来,忘性太大了
背景:
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
jmap查看信息:
jmap -heap 56343
Attaching to process ID 56343, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.144-b01
using thread-local object allocation.
Parallel GC with 8 thread(s)
Heap Configuration:
MinHeapFreeRatio = 0
MaxHeapFreeRatio = 100
MaxHeapSize = 4294967296 (4096.0MB)
NewSize = 89128960 (85.0MB)
MaxNewSize = 1431306240 (1365.0MB)
OldSize = 179306496 (171.0MB)
NewRatio = 2
SurvivorRatio = 8
MetaspaceSize = 21807104 (20.796875MB)
CompressedClassSpaceSize = 1073741824 (1024.0MB)
MaxMetaspaceSize = 17592186044415 MB
G1HeapRegionSize = 0 (0.0MB)
Heap Usage:
PS Young Generation
Eden Space:
capacity = 1286078464 (1226.5MB)
used = 569220648 (542.8511123657227MB)
free = 716857816 (683.6488876342773MB)
44.26018038040951% used
From Space:
capacity = 69206016 (66.0MB)
used = 25521552 (24.339248657226562MB)
free = 43684464 (41.66075134277344MB)
36.877649480646305% used
To Space:
capacity = 66060288 (63.0MB)
used = 0 (0.0MB)
free = 66060288 (63.0MB)
0.0% used
PS Old Generation
capacity = 163577856 (156.0MB)
used = 55992088 (53.398216247558594MB)
free = 107585768 (102.6017837524414MB)
34.22962579971705% used
29765 interned Strings occupying 3248952 bytes.
MaxHeapFreeRatio: GC后如果发现空闲堆内存占到整个预估堆内存的N%(百分比),则收缩堆内存的预估最大值, 预估堆内存是堆大小动态调控的重要选项之一. 堆内存预估最大值一定小于或等于固定最大值(-Xmx指定的数值). 前者会根据使用情况动态调大或缩小, 以提高GC回收的效率MinHeapFreeRatio: GC后如果发现空闲堆内存占到整个预估堆内存的N%(百分比), 则放大堆内存的预估最大值
MaxHeapSize: 即-Xmx, 堆内存大小的上限
InitialHeapS