穗舟网
  • Python
  • Java
  • PHP
  • iOS
  • Android
  • NodeJS
  • JavaScript
  • HTML5
  • 其他
  • 话题

Nashorn引擎导致metaspace oom

正东 / 2023-06-20 / 原文

 
0
 
0
 
从报错内容很清楚是Metaspace区域oom了
大部分情况下,程序运行中不会出现过多的类加载数量的变动,先导入dump文件检查是否有异常的classLoader或者有异常动态生成的class
发现了下面这个classLoader数量异常,项目中用到nashorn这块js引擎来做动态js脚本执行
0
通过查阅nashorn源码发现
https://github.com/JetBrains/jdk8u_nashorn/blob/master/src/jdk/nashorn/internal/runtime/Context.java#L1304
 
 
有_loader_per_compile参数可以控制ClassLoader的创建是否复用
 
 
https://github.com/JetBrains/jdk8u_nashorn/blob/master/src/jdk/nashorn/internal/runtime/resources/Options.properties#L211-L216
 
0
默认为true代表每次compile js脚本都会新创建一个classLoader,用下面的方式改造一下js引擎的创建方式
 
改造前测试200次 发现创建了200个ScripLoader
改造后测试发现ScriptLoader数量不再变化了
 
0
 

如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,转载文章之后须在文章页面明显位置给出作者和原文连接,谢谢。

Nashorn引擎导致metaspace oom更多相关文章


Android 哪些系统应用没法禁用(即哪些应用的禁用按钮是灰选)?

AJAX & AXIOS-2024/11/1

验证码处理在自动化测试中的应用

Java,启动!

2024/11/1日 日志 关于JavaScript简介&引入方式 以及基础语法的学习

android 13 更改手机信号调整

BFS(Breath First Search 广度优先搜索)

Angular 18 上手开发

单链表题+数组题(快慢指针和左右指针)

MySQL和Easy-Es语法对照表

DevOp相关

CSRF攻击与防御

华为云开源项目Sermant正式成为CNCF官方项目

spring-boot-configuration-processor无法生效

给网站添加春节灯笼效果:引入即用,附源码!

如何在鲲鹏平台上快速上手应用开发?鲲鹏DevKit给你答案

程序员的修炼之路

Java-中文官方教程-2022-版-一-

Java-中文官方教程-2022-版-五-

Java-中文官方教程-2022-版-四-

随机推荐


step7 V5.x上的SCL

yolo --- 核心思想

【游记】CCPC 济南 2024 游记

AJAX & AXIOS-2024/11/1

验证码处理在自动化测试中的应用

一些学科笑话

NOIP2024模拟赛20 & 11.1 小记

20241101 数据结构与算法期中机试收获

Java,启动!

什么是IT技术

即将到来!

2024/11/1日 日志 关于JavaScript简介&引入方式 以及基础语法的学习

舍得-时间-工作是人的一生最重要的事情-自己要有私房钱-人的一生最重要的事情是书写自己的人生

2.TiUP 部署 DM 集群

原型模式的C++实现

python bytecode解析

09-XSS键盘监听、cookie窃取&文件上传绕过

ubuntu 24.04 部署 mysql 8.4.3 LTS

国标GB28181公网平台LiteGBS国标GB28181视频平台建筑工地无线视频联网监控系统方案

imes完工下线

热门话题


Ethernaut Level 11: Elevator Attack and Blockchain Interaction

快速部署开源spug运维平台的Docker安装指南

驱动调试之printk的原理与使用

计算机思维模型及其应用

华为云发布代码大模型PanGu-Coder2,实现高效代码生成

Linux多硬盘数据存储和分区操作

构建高可用架构: 分层冗余与自动故障转移

LoRA:高效调参的大语言模型适应方法

《分布式系统的基本原理及互联网分层架构的本质》

Hadoop写流程解析

Java架构师的系统架构设计方法论中的规范要点

使用observeDOM解决BetterScroll插件在移动端无法滑动的问题

互联网一致性架构设计实践

高并发系统架构与水平扩展

混合应用的崛起:跨平台开发取代原生应用

  穗舟网 (www.seizhou.com)

本站除标明"本站原创"外所有文章版权归创作人所有,本站不承担任何法律责任和连带责任,如有冒犯请直接联系,我们将立即予以纠正并致歉。

Powered by WordPress  ·  v1.0.0-alpha