一 java进程内存分析简单使用
1 查看堆内存总体概况
jmap -heap 进程ID
2 查看堆中对象的数量以及大小
jmap -histo 进程ID
3 加上live参数则是统计活动的对象信息
jmap -histo:live 进程ID
如: jmap -histo:live 14574
4 统计gc信息
jstat -gcutil 进程ID 时间间隔(ms)统计次数
jstat -gcutil 14574 1000 2
5 查看java进程配置的jvm参数
jinfo -flags 进程id
jinfo -flags 15855
6 jstack pid 查看jvm进程中是否存在block的线程 cpu占比高
二 使用界面工具分析内存泄漏情况
1、以二进制形式输出堆内存信息;
jmap -dump:format=b,file=heap.bin 进程ID
jmap -dump:format=b,file=heap.bin 14574
2、下载生成的文件heap.bin至本地电脑,利用MemoryAnalyzer等图形化工具可以直观的分析出内存泄漏情况。
注:mat下载地址:http://www.eclipse.org/mat/downloads.php