17回复
5年前
内存 Dump 文件中“sun.reflect.DelegatingClassLoader” 和 “sun.reflect.GeneratedMethodAccessor*” 都是些啥对象呢?
问题描述
各位大佬,这是一个由于 Metaspace 导致的频繁 full gc 的内存 dump 文件,对应的 JVM 参数为:
-XX:MetaspaceSize=128M
-XX:MaxMetaspaceSize=128M
-Xms2g
-Xmx2g
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=75
-XX:+UseCMSInitiatingOccupancyOnly
-XX:+PrintGCTimeStamps
-XX:+PrintGCDetails
-XX:+PrintHeapAtGC
-Dsun.reflect.noInflation=true
-Dsun.reflect.inflationThreshold=0
分析的过程中发现以下异常情况,不知道是为啥,还请知道的大佬帮忙分析一下。
截图如下
-
很多这种类的 sun.reflect.DelegatingClassLoader 实例对象,多达 1500 多个
-
很多这种类的 sun.reflect.GeneratedMethodAccessor* 对象,且最后的数字都高达6914
提问
- 这些对象都是啥?
- 为啥会产生这些对象?
- 这些对象对 Metaspace 会产生啥影响?
关联了该问题的文章:
26191 阅读