Nashorn引擎導致metaspace oom

2023-06-19 21:01:02
 
0
 
0
 
從報錯內容很清楚是Metaspace區域oom了
大部分情況下,程式執行中不會出現過多的類載入數量的變動,先匯入dump檔案檢查是否有異常的classLoader或者有異常動態生成的class
發現了下面這個classLoader數量異常,專案中用到nashorn這塊js引擎來做動態js指令碼執行
0
通過查閱nashorn原始碼發現
 
 
 
0
預設為true代表每次compile js指令碼都會新建立一個classLoader,用下面的方式改造一下js引擎的建立方式
 
改造前測試200次 發現建立了200個ScripLoader
改造後測試發現ScriptLoader數量不再變化了
 
0