JVM内存观察
内存观察部分一
windows 查看运行Java程序实例
命令: jps
jmap
1. jmap -heap pid : 查看内存设置及使用情况
jmap -heap 16276
我主要想查看把400+条的数据字典数据加载到内存里面,和没加载前后对比。先看看加载进去的内存使用情况:
对应解释:
Heap Configuration: MinHeapFreeRatio = 0 //JVM最小空闲比率 可由-XX:MinHeapFreeRatio=<n>参数设置, jvm heap 在使用率小于 n 时 ,heap 进行收缩 MaxHeapFreeRatio = 100 //JVM最大空闲比率 可由-XX:MaxHeapFreeRatio=<n>参数设置, jvm heap 在使用率大于 n 时 ,heap 进行扩张 MaxHeapSize = 8568963072 (8172.0MB) //JVM堆的最大大小 可由-XX:MaxHeapSize=<n>参数设置 NewSize = 178782208 (170.5MB) //JVM新生代的默认大小 可由-XX:NewSize=<n>参数设置 MaxNewSize = 2856321024 (2724.0MB) //JVM新生代的最大大小 可由-XX:MaxNewSize=<n>参数设置 OldSize = 358088704 (341.5MB) //JVM老生代的默认大小 可由-XX:OldSize=<n>参数设置 NewRatio = 2 //新生代:老生代(的大小)=1:2 可由-XX:NewRatio=<n>参数指定New Generation与Old Generation heap size的比例。 SurvivorRatio = 8 //survivor:eden = 1:8,即survivor space是新生代大小的1/(8+2)[因为有两个survivor区域] 可由-XX:SurvivorRatio=<n>参数设置 MetaspaceSize = 21807104 (20.796875MB) //元空间的默认大小,超过此值就会触发Full GC 可由-XX:MetaspaceSize=<n>参数设置 CompressedClassSpaceSize = 1073741824 (1024.0MB) //类指针压缩空间的默认大小 可由-XX:CompressedClassSpaceSize=<n>参数设置 MaxMetaspaceSize = 17592186044415 MB //元空间的最大大小 可由-XX:MaxMetaspaceSize=<n>参数设置 G1HeapRegionSize = 0 (0.0MB) //使用G1垃圾收集器的时候,堆被分割的大小 可由-XX:G1HeapRegionSize=<n>参数设置 Heap Usage: PS Young Generation Eden Space: capacity = 454557696 (433.5MB) used = 446827288 (426.1277084350586MB) free = 7730408 (7.372291564941406MB) 98.2993560403826% used From Space: capacity = 22544384 (21.5MB) used = 17157592 (16.362754821777344MB) free = 5386792 (5.137245178222656MB) 76.10583638035973% used To Space: capacity = 27787264 (26.5MB) used = 0 (0.0MB) free = 27787264 (26.5MB) 0.0% used PS Old Generation capacity = 331874304 (316.5MB) used = 47505824 (45.305084228515625MB) free = 284368480 (271.1949157714844MB) 14.314402599846959% used 33231 interned Strings occupying 3973016 bytes. // 字符数占用内存情况
下面是没有加载数据字典的jvm内存情况:
可以看出:伊甸区的变化很大。98% -> 20%
----树梢尖上众山小