首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GeneratedMethodAccessor从JVM_DefineClass加载10k次导致oom

GeneratedMethodAccessor从JVM_DefineClass加载10k次导致oom
EN

Stack Overflow用户
提问于 2021-07-05 13:27:47
回答 1查看 687关注 0票数 0

在jvm参数中添加了"-verbose:class“,并得到了10k次日志,如下所示:”从-verbose:class加载sun.reflect.GeneratedMethodAccessor10004“

我是否有任何方法来查找原始类,导致这种情况的是我的应用程序的根方法?

我知道"GeneratedMethodAccessor###是通过反射实现来调用方法和构造函数在运行时生成的类“,但是我不知道加载的具体方法或类是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-05 15:14:51

异步分析器可以帮助查找生成这些MethodAccessors的位置。

代码语言:javascript
运行
复制
./profiler.sh -d 120 -e sun.reflect.MethodAccessorGenerator.generate -f report.html <javaPID>

这将开始记录120秒。所有用于调用Method.invokeConstructor.newInstance的生成的Method.invoke将被捕获并保存为report.html下的Flame。

Flame图显示了生成的访问器的数量,这些访问器具有它们的原始堆栈跟踪:

或者,要在运行时附加分析器,可以从一开始就启用分析器启动Java:

代码语言:javascript
运行
复制
java -agentpath:/path/to/libasyncProfiler.so=start,event=sun.reflect.MethodAccessorGenerator.generate,file=report.html -jar <your application>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68256999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档