Nashorn引擎导致metaspace oom

 
0
 
0
 
从报错内容很清楚是Metaspace区域oom了
大部分情况下,程序运行中不会出现过多的类加载数量的变动,先导入dump文件检查是否有异常的classLoader或者有异常动态生成的class
发现了下面这个classLoader数量异常,项目中用到nashorn这块js引擎来做动态js脚本执行
0
通过查阅nashorn源码发现
 
 
 
0
默认为true代表每次compile js脚本都会新创建一个classLoader,用下面的方式改造一下js引擎的创建方式
 
改造前测试200次 发现创建了200个ScripLoader
改造后测试发现ScriptLoader数量不再变化了
 
0
 
posted @ 2023-06-19 19:11  俞正东  阅读(144)  评论(0编辑  收藏  举报