JProfile_help.pdf_学习笔记_04

本文探讨了Java中内存泄露的问题,介绍了如何通过监测工具发现内存泄露,并提供了定位问题根源的具体步骤。文章还分析了常见的内存泄露原因,如过度缓存和设计错误。

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

 

找到内存弱点,不像C/C++,Java 有一个垃圾回收器去释放所有没有被引用的实例,这意味着在Java里面没有经典的内存泄露问题,然而,如果对象只在一个地方被用到,这看起来很简单,但在很多真实的系统里对象被传输了许多层,每一层都回给对象增加一个持久的引用,有些时候这个看起来很简单 ,对象应该被垃圾回收器收集,然而在系统不同部分的调用传递一个对象作为参数会导致对象处于一种“逃避”,如果调用方故意或错误的继续持有对象的引用在调用完成,通常,过量的缓存和设计错误都是内存泄露的原因。

      认识内存泄露

      第一步监测内存泄露是去看看 堆内存和对象监测视图,如果有问题的话,图表会显示一个尽可能震荡的线形图,如果没有这种图,你的程序可能只是简单的消耗了大量的内存,这不是泄露问题,简单的方法就是找到数组或类,尝试去减少他们的实例的数量。  

     最直接的方法就是在 对象视图和 已监测的对象视图里找到实例最多的类,再切换到分配热点视图找到是那个方法导致了大量实例创建的内存消耗,然后就可以分析方法了。  详细参见地址:  http://peacherdiy.iteye.com/admin/pictures   5张图片分别按序号 JProfile_*_01------JProfile_*_05

 

---------P 31

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值