导出jvm的内存快照进行分析

查找对应的进程id(PID)

使用

tasklist | findstr javaw.exe

或者知道被占用的端口使用

netstat -nao | findstr “8080”

记下最后一个数字即PID,假如得到PID是3715

linux下使用

ps aux|grep java

或者知道端口号

lsof -i:8080

记下第一个数字就是PID (根据进程查看信息命令netstat -anop | grep PID)

然后使用如下命令

jmap -dump:format=b,file=E:\eclipse.hprof 3715

在E盘生成eclipse.hprof快照

或linux

jmap -dump:format=b,file=/usr/jdk/dump/elipse.hprof 3715

使用MAT分析内存快照

下载Memory Analyzer Tool独立版本地址

http://www.eclipse.org/mat/downloads.php

现在最新版本Memory Analyzer 1.9.0 Release

下载Stand-alone Eclipse RCP Applications下对应的版本(66.8MB)

解压后,打开MemoryAnalyzer.exe,File-Open Heap Dump…

选默认是内存泄漏报告,Finish

为了快速找到pid,也可以修改进程名为比较特殊好记的

1.windows下修改进程名称

打开apache-tomcat-8.5.32\bin\setclasspath.bat文件,找到

set _RUNJAVA="%JRE_HOME%\bin\java.exe"这一行。

将该行注释掉(rem),然后在该行下面添加如下两行并进行保存:

copy “%JAVA_HOME%\bin\java.exe” “%JAVA_HOME%\bin\new_java.exe”
set _RUNJAVA="%JAVA_HOME%\bin\new_java"

重启后,就能看到new_java这个新命名的进程了

2.linux下修改进程名称

打开apache-tomcat-8.5.32\bin\setclasspath.sh文件,找到

_RUNJAVA="$JRE_HOME"/bin/java

将该行注释掉(rem),然后在该行下面添加如下两行并进行保存:

cp “ J A V A H O M E / b i n / j a v a " " JAVA_HOME/bin/java" " JAVAHOME/bin/java""JAVA_HOME/bin/new_java”
_RUNJAVA="$JRE_HOME/bin/new_java"

然后重启,使用

ps aux|grep new_java

就能找到进程信息了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

svygh123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值