如何排查Java内存泄露

 我来答
转角遇到哎传奇
2017-12-08 · TA获得超过6773个赞
知道大有可为答主
回答量:1756
采纳率:91%
帮助的人:487万
展开全部
  • 1.打开/tomcat_home/bin/catalina.bat文件

    2.加上:set JAVA_OPTS=%JAVA_OPTS% -server -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:\heapdump,这样当内存溢出是就会在对应路径下生成dump文件

  • 运行程序打开jdk bin 文件夹下再带的 jvisualvm.exe

  • 选择tomcat线程,打开实时监控页面可以看到对应的堆栈线程和装在类,内存的实时情况

  • 运行程序打开jdk bin 文件夹下再带的 jconsole.exe,可以概览堆栈线程和装在类,内存的全部运行时间情况

  • 下载安装mat,dump分析软件,安装后,点击file open 导入dump文件

  • 打开后,灰色区域为可能发生内存溢出的区域,下带问题描述

  • 选择Histogram,点击shallow列进行排序,找出实例最多的

  • 右键实例最的选择list objects-with incoming references,可在根据正则表达式输入自己想查的类,搜索,后右键打开 path to gc root-exclude phantom/weak/soft etc. references 就可以查出 调用为回收的相关信息。

雪V歌
2017-12-08 · 知道合伙人数码行家
雪V歌
知道合伙人数码行家
采纳数:78696 获赞数:222918
泉州兴瑞发公司2015-2017最佳优秀员工。

向TA提问 私信TA
展开全部
1. Memory Analyzer-是一款开源的JAVA内存分析软件,查找内存泄漏,能容易找到大块内存并验证谁在一直占用它,它是基于Eclipse RCP(Rich Client Platform),可以下载RCP的独立版本或者Eclipse的插件。
2. JProbe-分析Java的内存泄漏。
3. JProfiler-一个全功能的Java剖析工具,专用于分析J2SE和J2EE应用程序。它把CPU、执行绪和内存的剖析组合在一个强大的应用中,GUI可以找到效能瓶颈、抓出内存泄漏、并解决执行绪的问题。
4. JRockit-用来诊断Java内存泄漏并指出根本原因,专门针对Intel平台并得到优化,能在Intel硬件上获得最高的性能。
5. YourKit .NET & Java Profiling业界领先的Java和.NET程序性能分析工具。
6. AutomatedQA -AutomatedQA的获奖产品performance profiling和memory debugging工具集的下一代替换产品,支持Microsoft, Borland, Intel, Compaq 和 GNU编译器。可以为.NET和Windows程序生成全面细致的报告,从而帮助您轻松隔离并排除代码中含有的性能问题和内存/资源泄露问题。支持.Net 1.0,1.1,2.0,3.0和Windows 32/64位应用程序。
7. Compuware DevPartner Java Edition-包含Java内存检测,代码覆盖率测试,代码性能测试,线程死锁,分布式应用等几大功能模块。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式