如何导出Java应用程序的内存快照文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何导出Java应用程序的内存快照文件相关的知识,希望对你有一定的参考价值。
问了一下我之前的在远标教育的大学同学,他说在windows下找到要导出的Java应用的进程号。比如我要导出本机的Eclipse的内存快照,因为Eclipse也是Java应用。首先要找到Eclispe的进程号。在命令行输入:tasklist | findstr eclipse。可以看到,Eclispe的进程号是8052。然后在命令行输入:jmap -dump:format=b,file=elipse.hprof 8052。file=elipse.hprof意思是设置生成的文件名,8052就是Java程序的进程号。
如果是在Linux系统下面,在命令行输入:ps -ef | grep eclipse。
可以看到eclipse的进程号是2622。同样,在命令行输入:jmap -dump:format=b,file=elipse.hprof 2622。
把生成的elipse.hprof在SecureCRT命令行输入:sz elipse.hprof,把文件下载到本地,用MAT之类的工具进行分析就可以了。 参考技术A 导出Java应用程序的内存快照是分析Java程序是否存在泄露和解决泄露的第一步。下面小编将介绍下如何在windows和linux平台下,导出Java应用的内存快照文件。
1、在windows下找到要导出的Java应用的进程号。比如我要导出本机的Eclipse的内存快照,因为Eclipse也是Java应用。首先要找到Eclispe的进程号。在命令行输入:tasklist | findstr eclipse。
2、可以看到,Eclispe的进程号是8052。然后在命令行输入:jmap -dump:format=b,file=elipse.hprof 8052。file=elipse.hprof意思是设置生成的文件名,8052就是Java程序的进程号。
3、如果是在Linux系统下面,在命令行输入:ps -ef | grep eclipse。
4、可以看到eclipse的进程号是2622。同样,在命令行输入:jmap -dump:format=b,file=elipse.hprof 2622。
5、把生成的elipse.hprof在SecureCRT命令行输入:sz elipse.hprof,把文件下载到本地,用MAT之类的工具进行分析就可以了。本回答被提问者采纳
java导出csv如何避免内存溢出
参考技术A Java调用一下shell脚本,用shell脚本去执行导出CSV到一个文件夹,然后再下载,完事,因为用其它方式导出会更加高效,内存和速度都很快。以上是关于如何导出Java应用程序的内存快照文件的主要内容,如果未能解决你的问题,请参考以下文章
IDA Pro:如何通过删除除代码之外的所有内容来减少内存快照大小?
redis快照文件dump.rdb解析工具--redis-rdb-tools
Eclipse MAT内存分析工具(Memory Analyzer Tool)