GC有两种
minor GC:对于新生成的对象,都放在Eden中;当Eden充满时(小孩太多了),GC将开始工作,首先停止应用程序的运行,开始收集垃圾,把所有可找到的对象都复制到old空间中;
full GC:当old满了,触发full GC。full GC很消耗内存,把old,young里面大部分垃圾回收掉。这个时候用户线程都会被block。
通过jmap命令也可以查看JVM当前的heap使用情况:
jmap -heap 4306
Attaching to process ID 17334, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 17.0-b16
using thread-local object allocation.
Concurrent Mark-Sweep GC
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 1048576000 (1000.0MB)
NewSize = 33554432 (32.0MB)
MaxNewSize = 33554432 (32.0MB)
OldSize = 100663296 (96.0MB)
NewRatio = 7
SurvivorRatio = 4
PermSize = 21757952 (20.75MB)
MaxPermSize = 88080384 (84.0MB)
Heap Usage:
New Generation (Eden + 1 Survivor Space):
capacity = 27983872 (26.6875MB)
used = 10699128 (10.203483581542969MB)
free = 17284744 (16.48401641845703MB)
38.23319374817037% used
Eden Space:
capacity = 22413312 (21.375MB)
used = 5473760 (5.220184326171875MB)
free = 16939552 (16.154815673828125MB)
24.42191497624269% used
From Space:
capacity = 5570560 (5.3125MB)
used = 5225368 (4.983299255371094MB)
free = 345192 (0.32920074462890625MB)
93.80328010110294% used
To Space:
capacity = 5570560 (5.3125MB)
used = 0 (0.0MB)
free = 5570560 (5.3125MB)
0.0% used
concurrent mark-sweep generation:
capacity = 545476608 (520.20703125MB)
used = 311771592 (297.3285598754883MB)
free = 233705016 (222.87847137451172MB)
57.155813361661146% used
Perm Generation:
capacity = 39591936 (37.7578125MB)
used = 23793192 (22.690956115722656MB)
free = 15798744 (15.066856384277344MB)
60.096055924115454% used
java gc jmap使用
姓名 | |
邮箱 | |
URL | |
不错,学习分享
支持一下,话说博主学贯中西哈,还懂中医的。
不错的博客,支持一下!