线上应用故障排查之二:高内存占用

本文主要讨论Java线上应用中遇到的高内存占用问题,包括`java.lang.OutOfMemoryError`异常的两种类型及其原因。讲解了Java内存模型的三个代——新生代、老生代和永久代,并提供了使用`jmap`命令进行内存分析的方法,如`jmap -histo:live`和`jmap -dump:live,format=b,file=xxx.xxx`,以及如何利用MAT工具检测内存泄漏。" 124090420,13157955,基于Java与Spring的网上家电销售系统实现,"['Java', 'Spring', 'Web开发', '电子商务', 'B/S架构']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前一篇介绍了线上应用故障排查之一:高CPU占用,这篇主要分析高内存占用故障的排查。

搞Java开发的,经常会碰到下面两种异常:

1、java.lang.OutOfMemoryError: PermGen space

2、java.lang.OutOfMemoryError: Java heap space

要详细解释这两种异常,需要简单重提下Java内存模型。

(友情提示:本博文章欢迎转载,但请注明出处:hankchen,http://www.blogjava.net/hankchen

Java内存模型是描述Java程序中各变量(实例域、静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和从内存取出变量这样的低层细节。

在Java虚拟机中,内存分为三个代:新生代(New)、老生代(Old)、永久代(Perm)。

(1)新生代New:新建的对象都存放这里

(2)老生代Old

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值