news 2026/1/15 10:03:51

【优化】内存溢出和内存泄漏以及什么区域可能产生内存溢出、排查定位方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【优化】内存溢出和内存泄漏以及什么区域可能产生内存溢出、排查定位方法

内存泄漏和内存溢出用自己的话说就是:

内存泄漏就是占着茅坑不拉屎的人,也不干活,也不把位置腾给别人,没有位置可以用了,所占着的位置就是被泄漏的内存,无用但未被回收,这些位置本来可以分给其他需要的对象使用,但是因为被占着,导致新的对象没地方放,这就是内存泄漏(像使用ThreadLocal,使用它没有及时remove,就有可能导致内存泄漏)。

内存溢出就是杯子放不下水了,溢出来了。

内存泄漏可能会导致内存溢出。

官方的话说:

内存溢出(out of memory):简单地说内存溢出就是指程序运行过程中申请的内存大于系统能够提供的内存,导致无法申请到足够的内存,于是就发生了内存溢出。

内存泄漏(memory leak):内存泄漏指程序运行过程中分配内存给临时变量,用完之后却没有被GC回收,始终占用着内存,既不能被使用也不能分配给其他程序,于是就发生了内存泄漏。

内存溢出发生的场景和位置,其实可以分为三个部分,堆内存溢出、栈内存溢出、方法区也就是元空间内存溢出(jdk1.8之后)

堆内存溢出(out of memory error:Java heap):又可以划分为新生代和老年代堆内存溢出,也是发生内存溢出比较多的地方。

若是新生代溢出,有可能是新建的临时对象创建的太快太多,垃圾回收的速度赶不上创建对象的速度,进而导致young GC,像一下子查出来大量的对象集合,会把内存慢慢打满,先发生young GC,后面可能会发生full GC,full GC也处理不过来了就会导致OutOfMemoryError:Java heap。

若是老年代溢出,可能是由于young GC发生过于频繁,导致full GC;也有可能是新创建过多的大对象直接进去老年代,或者一些长期存活的对象,像静态集合里的对象,还有内存泄漏这些都有可能导致老年代溢出。

ps:静态集合是静态的在类加载时就完成了初始化,会直接分配到老年代,生命周期和类一样长,若是类不被卸载,就一直存活;若是类加载的时候就带着这个对象,直接分配到老年代,若是程序运行时才把对象放进静态集合,这个对象先进入新生代在进入老年代。

栈内存溢出(stackoverflow error):栈内存溢出发生在栈里,每个栈包含多个栈帧,栈帧又包含:局部变量表、操作数栈、动态链接、方法出口信息等。

若是栈内存溢出可能存在递归调用、方法里定义了大量局部变量、方法调用过深导致的

方法区(元空间)内存溢出(out of memory error:Mateapaches):原因可能是加载过多的类,比如说代理类,假如想对某些方法进行增强,就会新建代理类去创建不同的实例,若是目标方法增强的逻辑相同,那就只需要创建一份代理类就行,然后创建目标方法的实例。代理类就类似于模版模式实现的通用流程的类。但若是你要是对每一个目标方法声明一个代理类,增强的逻辑也不相同,那么就会新建很多代理类去增强目标方法,大量的代理类就有可能占满方法区,导致内存溢出。所以这就是为什么spring的代理类会放在缓存中,反复使用的原因。

排查定位方法:todolist

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/14 20:09:54

论文查重AI率工具排行榜:9大检测平台+标准推荐

论文查重AI率工具排行榜:9大检测平台标准推荐AI论文工具核心特点速览工具名称查重效率降重能力适用场景特色功能aicheck⚡⚡⚡⚡⚡⭐⭐⭐⭐高重复率论文快速降重专业术语保留率高aibiye⚡⚡⚡⚡⭐⭐⭐⭐⭐学术论文深度改写逻辑结构优化askpaper⚡⚡⚡⭐⭐⭐日常论文…

作者头像 李华
网站建设 2025/12/22 16:21:12

论文生成慢半拍?十大AI工具,AIGC降重+快速出初稿

论文生成慢半拍?十大AI工具,AIGC降重快速出初稿�� AI工具性能速览表工具名称核心功能处理时间AI生成率控制适配检测平台askpaper降AIGC率降重同步20分钟个位数知网/格子达/维普秒篇AI痕迹深度弱化20分钟个位数知网/格子达/维普aic…

作者头像 李华
网站建设 2026/1/1 15:40:08

研究生论文写作工具推荐:10大平台+开题排名

研究生论文写作工具推荐:10大平台开题排名 核心工具对比速览 工具名称 核心优势 处理时间 适用场景 特色功能 aibiye 精准适配知网/维普规则 20分钟 学位论文降重 AIGC查重降重一体化 aicheck AI痕迹深度消除 15-30分钟 期刊投稿 学术术语保护机制 …

作者头像 李华
网站建设 2025/12/31 18:00:59

卡在学历的开发者困境,一个 Vue 开发者的60天求职之路【一】

今天是失业的第60天。过去一个月,我投出90多份简历,主动联系450位招聘方,收到了10次面试机会,全部认真完成面试。 理想很丰满,现实很骨感,结果却如出一辙:有的止步于背调环节——技术面顺利通过…

作者头像 李华
网站建设 2025/12/31 1:21:49

QNetworkReply-QNetworkAccessManager-put-内存申请注意事项

展示 reply manager->put(request, ftpsendfile);简介 在Qt C中执行manager->put(request, ftpsendfile)时,内存管理涉及多个层面,需结合Qt对象模型、网络模块特性及C内存管理规则分析。以下从内存申请点和回收策略两方面详细说明: 内…

作者头像 李华
网站建设 2025/12/23 18:31:27

威斯康星大学麦迪逊分校课程数据集成数据集:193个学科领域超9千门课程的全面教学信息资源

威斯康星大学麦迪逊分校课程数据集成数据集:193个学科领域超9千门课程的全面教学信息资源 引言与背景 威斯康星大学麦迪逊分校课程数据集成数据集是一个综合性、权威性的高等教育教学资源库,完整记录了该校丰富的课程体系、精细的教学安排以及全面的学术…

作者头像 李华