前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JVM内存泄露(OOM)!带你一一揭秘【第一弹】

JVM内存泄露(OOM)!带你一一揭秘【第一弹】

作者头像
IT苦逼一枚
发布2020-03-26 09:50:16
3980
发布2020-03-26 09:50:16
举报
文章被收录于专栏:测试帮日记

我们将分成多次介绍内存泄露OOM的内容,大致套路为现象、原因、解决方案。简单清晰,不玩高大上。记得给转发一下,哈哈

OOM最典型的表现:java.lang.OutOfMemoryError,你记住了吗?

1 OOM的现象之一

今天介绍第一种Java heap space

2 什么原因造成的?

1)应用程序尝试添加更多的数据放入堆空间,但没有足够的空间供它,当JVM达到堆大小限制时,都会引发Java堆空间错误

2)数据量激增。当用户数量或数据量突然达到峰值并超过预期阈值时,在峰值之前正常运行的操作将停止运行并触发java.lang.OutOfMemoryError: Java heap space。

3)内存泄漏。不好编程代码错误将导致你的应用程序不断消耗更多的内存。每次都会将某些对象留在Java堆空间中。久而久之,泄漏的对象会消耗所有可用的Java堆空间。

3 怎么解决和避免呢?

1)分配合理的内存给JVM的堆。

2)但是,在许多情况下,提供更多的Java堆空间将无法解决问题。例如,如果应用程序包含内存泄漏,即使添加更多的堆只会推迟错误。此外,增加Java堆空间的数量也往往会增加GC暂停的时间,从而影响应用程序的吞吐量或延迟。

3)如果希望解决Java堆空间的根本问题而不是掩盖症状,则需要弄清楚代码的哪一部分负责分配最多的内存。换句话说,你需要清楚哪些对象占据堆的大部分空间并想办法优化他们

好了,今天就到这里,第二弹明天见面~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试帮日记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档