您当前的位置:首页 > 新闻中心 > 科技资讯

如何排查Java内存泄露 java内存泄露典型特征

时间:2017-12-11 19:45:28  

  java内存泄露场景---Javaheapspace

  原因:长生命周期的对象引用了短生命周期(应该尽快GC回收掉)的对象,最后造成一个对象已经不能在堆区分配足够空间。注:这种现象不能完全肯定是内存泄露,比如:heap本身的设置的过小。

  案例:我个人没有遇到过这种案例,但模拟过这种情形的Demo:参考我的《深入浅出JProfiler》文章,也学习过其他同学的案例:例如:参数过大并且频繁超时导致内存泄露

  解决方案:

  触发FullGC,dumpliveheap。标记堆中对象数量,重点关注可疑对象

  触发FullGC,dumpliveheap。标记堆中对象数量,重点关注可疑对象

  对比步骤1和步骤2相同对象的数量和大小,找出可疑对象一一进行排查确认。

  如果步骤3依然无法明确有问题的对象,那就多执行几次步骤1和步骤2。在此过程中可以调整GC触发时间,模拟真实的故障场景:)

  看看GC后堆的大小是否增长,如果没有不断增长,并且持续一段较长时间,那基本正常(具体看看深入浅出JProfiler文章中的实践章节)。

  注:Java内存泄露的场景还有很多(可以参考下官方的一些文档javamemleaks),有机会后面会继续补充。

来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
油坊店:毛竹“打一针” “多子”又“壮孙”
油坊店:毛竹“打一针
相关文章
    无相关信息
栏目更新
栏目热门