查找对应的进程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独立版本地址
现在最新版本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
就能找到进程信息了