求助>内存 Dump 文件中“sun.reflect.DelegatingClassLoader” 和 “sun.reflect.GeneratedMethodAccessor*” 都是些啥对象呢?>
17回复
2年前

内存 Dump 文件中“sun.reflect.DelegatingClassLoader” 和 “sun.reflect.GeneratedMethodAccessor*” 都是些啥对象呢?


环境参数
  • 操作系统Linux
  • 操作系统版本Centos7
  • JDK版本JDK8
  • 内存4GB
  • CPU核数2
  • 操作系统位数64位
33166.bin52.53MB
查看详情

问题描述

各位大佬,这是一个由于 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

分析的过程中发现以下异常情况,不知道是为啥,还请知道的大佬帮忙分析一下。

截图如下

  1. 很多这种类的 sun.reflect.DelegatingClassLoader 实例对象,多达 1500 多个
    image.png

  2. 很多这种类的 sun.reflect.GeneratedMethodAccessor* 对象,且最后的数字都高达6914
    image.png

提问

  1. 这些对象都是啥?
  2. 为啥会产生这些对象?
  3. 这些对象对 Metaspace 会产生啥影响?
关联了该问题的文章:
12663 阅读
请先登录,再评论

请问你上面那个工具是啥,怎么得到的,还能看出有多少个,你的是coreduml还是heap du mp

1年前
回复 Wyz:

coredump貌似不能,不过可以通过实时分析的时候通过sa看下

1年前回复
回复 风吹屁屁凉:

能分析coredump吗,我想看看反编译后的字节码调用的什么反射方法

1年前回复
回复 Wyz:

这就是perfma提供的内存分析产品

1年前回复

### 问题一、二:这些对象是由于 Java 的反射机制附带产生的,你可以查看下自己的代码,是否有地方在频繁的进行反射调用。如果有,那就可能会产生这些对象。当然,通常情况下,这些对象在 JDK8 中会被自动回收的。如果没有,那就要看,是否有地方对 method 等对象存在强引用。看了一下你的 dump 文件,在 demo.simulators.memtbmk.MemTbmkBoot 中有个静态属性 mCache,是个 Vector,其中保存了多大 7645 个 java.lang.reflect.Method 对象。 ### 问题三:过多的类加载,加上你的 mataspace 的大小又只有 128M,所以,很有可能导致 Matespace OutofMemory Error。

2年前

这些对象都是啥?
为啥会产生这些对象?
-- 这些对象是由于 Java 的反射机制附带产生的,你可以查看下自己的代码,是否有地方在频繁的进行反射调用。如果有,那就可能会产生这些对象。当然,通常情况下,这些对象在 JDK8 中会被自动回收的。如果没有,那就要看,是否有地方对 method 等对象存在强引用。看了一下你的 dump 文件,在 demo.simulators.memtbmk.MemTbmkBoot 中有个静态属性 mCache,是个 Vector,其中保存了多大 7645 个 java.lang.reflect.Method 对象。
这些对象对 Metaspace 会产生啥影响?
过多的类加载,加上你的 mataspace 的大小又只有 128M,所以,很有可能导致 Matespace OutofMemory Error。

12年前

求解答

2年前

惭愧惭愧,这个问题我济颠也不会啊

2年前
回复 风中追风:

还有技颠大佬不会的技术难题?那得有多难啊~

2年前回复
回复 风中追风:

技颠大佬,我总算找到你了

2年前回复
回复 围棋少年-江流儿:

这个问题寒泉子大佬应该可以回答

2年前回复
查看更多

期待

2年前

期待济颠大神的回答
😄

12年前

期待大神们的回答

12年前

这个求助很赞啊,我也有这样的疑问🤔️

12年前