log4j 和 java.lang.OutOfMemoryError PermGen space

news2024/9/21 20:41:57

还是OneCoder在项目中沙箱的问题,用classloader隔离做的沙箱,反复运行用户的任务,出现永生区内存溢出:
java.lang.OutOfMemoryError: PermGen space

这个问题在tomcat重复热部署的时候其实比较常见。其道理也和我们沙箱的道理基本一致,就是每次任务运行的类没有卸载掉。而永生区正式存储加载入classloader中的类,反射的方法等的地方。如此只增不减,自然会产生溢出。

那么,什么情况下会产生沙箱中loader进来的类不会被回收的情况呢?

全文详见个人独立博客:https://www.coderli.com/log4j-permgen-space-leak/

log4j 和 java.lang.OutOfMemoryError PermGen space | OneCoder 还是OneCoder在项目中沙箱的问题,用classloader隔离做的沙箱,反复运行用户的任务,出现永生区内存溢出: java.lang.OutOfMemoryError: PermGen space 这个问题在tomcat重复热部署的时候其实比较常见。其道理也和我们沙箱的道理基本一致,就是每次任务运行的类没有卸载掉。而永生区正式存储加载入classloader中的类,反射的方法等的地方。如此只增不减,自然会产生溢出。 那么,什么情况下会产生沙箱中loader进来的类不会被回收的情况呢?简单说,就是当外部loader里加载的类,持有了沙箱loader中的加载的类的实例时。道理简单,但是实际项目中,寻找这种可能情况就复杂的多了。为了说明这个道理,我们做个简单的试验。 ClassLoader加载试验 试验思想,基本思想就是循环创建Classloader手动加载包,并通过反射调用包中的代码,考察在外部loader有无引用的情况下,PermGen区的变化情况。监控工具,即为JDK自带的Java VisualVM。 场景一、无引用icon-default.png?t=O83Ahttps://www.coderli.com/log4j-permgen-space-leak/加入频道领免费Java学习资料:https://pd.qq.com/s/dzb1xn6cd

加入大佬免费带队Java学习群:https://qm.qq.com/q/dmeTdieKOs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2108230.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【重学 MySQL】十二、SQL 语言的规则与规范

【重学 MySQL】十二、SQL 语言的规则与规范 基本规则注释语法规则命名规则基本命名规则具体命名规范其他注意事项 数据导入指令 SQL(Structured Query Language,结构化查询语言)的规则与规范是确保SQL语句能够正确执行、提高代码可读性和可维…

HarmonyOS开发实战( Beta5.0)Native Drawing自绘制能力替代Canvas提升性能

简介 Canvas 画布组件是用来显示自绘内容的组件,它具有保留历史绘制内容、增量绘制的特点。Canvas 有 CanvasRenderingContext2D/OffscreenCanvasRenderingContext2D 和 DrawingRenderingContext 两套API,应用使用两套API绘制的内容都可以在绑定的 Canv…

语音测试(一)ffmpeg视频转音频

视频转音频 下载ffmpeg工具进入bin目录cmd进入控制台输入命令 ffmpeg.exe -i ./视频.mp4 ./音频.wav命令说明 ffmpeg -i input.mp4 output.mkv FFmpeg 可能会尝试自动选择合适的编码器对视频和音频进行重新编码,以便适应 MKV 格式的要求ffmpeg -i input.mp4 -c c…

Java项目:140 springboot203医疗挂号管理系统

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 一共有管理员、挂号人员、划价人员、医生 四个角色 管理员登录进入本系统操作的功能包括对挂号人员,划价人员,患者&#xff0…

初始QT!

作业:了解QT文件夹初始代码的意义 QT core gui #QT工程所需得类库 core是核心库 gui图形化界面相关库类 greaterThan(QT_MAJOR_VERSION, 4): QT widgets #版本超过4.0会加上widgetsCONFIG c11 #该编辑器支持c11后的版本 # The following define makes you…

ngrok forward本地argocd并设置为github repo webhook

为什么需要ngrok 我们刚学了argocd的安装和部署应用,但是argocd什么时候部署部署我们的应用,就取决于repo的sync机制。我们采用以下cmd设置为autosync。 argocd app list # to get our app argocd app set argocd/tekton-learning-nginx --sync-polic…

小试牛刀-SOL链创建Token

目录 1.编写目的 2.账户结构 3.环境及使用依赖 4.步骤分解 4.1.导入相关依赖 4.2. 初始化变量 4.3. 创建并初始化Mint Account 4.4. 创建并初始化Metadata Account 4.5. 发送创建和初始化mint Account 4.6 铸造Token 5.源码分享 Welcome to Code Blocks blog 本篇文…

震惊,从仿真走向现实,3D Map最大提升超12,Cube R-CNN使用合成数据集迁移到真实数据集

震惊,从仿真走向现实,3D Map最大提升超12,Cube R-CNN使用合成数据集迁移到真实数据集 Abstract 由于摄像机视角多变和场景条件不可预测,在动态路边场景中从单目图像中准确检测三维物体仍然是一个具有挑战性的问题。本文介绍了一…

基于飞桨paddle2.6.1+cuda11.7+paddleRS开发版的目标提取-道路数据集训练和预测代码

基于飞桨paddle2.6.1cuda11.7paddleRS开发版的目标提取-道路数据集训练和预测代码 预测结果: 预测影像: (一)准备道路数据集 下载数据集地址: https://aistudio.baidu.com/datasetdetail/56961 mass_road.zip …

国际标准图像分辨率测试ISO12233 - 2017中文翻译

参考:https://blog.csdn.net/jgw2008/article/details/116519404?spm1035.2023.3001.6557&utm_mediumdistribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-2-116519404-bbs-392397517.264^v3^pc_relevant_bbs_down_v2_default&d…

SpringBoot与Minio的极速之旅:解锁文件切片上传新境界

目录 一、前言 二、对象存储(Object Storage)介绍 (1)对象存储的特点 (2)Minio 与对象存储 (3)对象存储其他存储方式的区别 (4)对象存储的应用场景 三、…

万龙觉醒辅助:VMOS云手机助力资源采集!挂机升级!

《万龙觉醒》是一款策略型游戏,玩家需要合理规划资源采集、建筑升级、科技研发等来提升实力。在本文中,我们将为您提供一篇详细的游戏辅助攻略,并介绍如何使用VMOS云手机来提升您的游戏体验,实现24小时的自动化管理。 使用VMOS云…

R3M: A Universal Visual Representation for Robot Manipulation

R3M [25] explores how visual representations obtained by training on diverse human video data using time-contrastive learning and video-language can enable data-efficient learning(实际上就是小样本学习) of downstream robotic manipulati…

【FreeRTOS】事件组实验-改进姿态控制

目录 0 前言1 事件组实验_改进姿态控制2 改进思路2.1 创建事件2.2 等待事件2.3 设置事件2.4 Debug2.5 设置MPU6050寄存器 3 总结 0 前言 学习视频: 【FreeRTOS 入门与工程实践 --由浅入深带你学习 FreeRTOS(FreeRTOS 教程 基于 STM32,以实际项…

pdf文件怎么编辑?6个pdf编辑方法学起来(图文教程)

pdf文件怎么编辑?现今的互联网时代,我们的办公也趋向于数字化办公。PDF文件已经成为我们日常工作和学习中不可或缺的格式文件。然而,编辑PDF文档不是一件容易的事。很多人会因为编辑pdf文档感到非常苦恼,尤其是当需要对PDF进行内容…

Linux内核编程(十五)网络设备驱动

本文目录 一、常见的网络协议二、传输介质三、RJ-45接口 对于网络知识不太熟悉的同学可以查看这篇文章:计算机网络知识点详情总结。 一、常见的网络协议 TCP、UDP协议:详情查看-TCP、UDP系统编程。DNS协议:是互联网中用于将域名&#xff08…

【刷题笔记】删除并获取最大点数粉刷房子

欢迎来到 破晓的历程的 博客 ⛺️不负时光&#xff0c;不负己✈️ 题目一 题目链接&#xff1a;删除并获取最大点数 思路&#xff1a; 预处理状态表示 状态转移方程 代码如下&#xff1a; class Solution { public:int deleteAndEarn(vector<int>& nums) {int N1…

八股(7)——Redis

八股&#xff08;7&#xff09;——Redis 4.3 RedisRedis 基础简单介绍一下 Redis!分布式缓存常见的技术选型方案有哪些&#xff1f;说一下 Redis 和 Memcached 的区别和共同点缓存数据的处理流程是怎样的&#xff1f;为什么要用 Redis/为什么要用缓存&#xff1f;Redis 除了做…

2024 年全国大学生数学建模竞赛(国赛)浅析

需要完整资料&#xff0c;请关注WX&#xff1a;“小何数模”&#xff01; &#xff08;需要完整B、C和E题资料请关注WX&#xff1a;“小何数模”&#xff0c;获取资料链接&#xff01;&#xff09; 本次万众瞩目的全国大学生数学建模赛题已正式出炉&#xff0c;无论是赛题难度…

Floorp Browser:开源自由,打造更个性化的浏览环境!

前言 "技术引领未来&#xff0c;创新改变世界。" 在这个日新月异的数字化时代&#xff0c;网络浏览器作为我们探索互联网世界的窗口&#xff0c;其重要性不言而喻。正是在这样的背景下&#xff0c;Floorp浏览器应运而生&#xff0c;它不仅继承了Mozilla Firefox的强…