一些内存调试命令在windows环境下并不有效
一些开源的调试包可用 如淘宝的Tsar
1.Jmap 与 mat联调
jmap -histo 4812 > heap.tt
start .
jstack 4812 > thread.txt |监听内存线程运行状态
jps -v |列出所有线程
jstat -gcutil 4812 1000 1000 |查看当前线程状况
jmap -dump:live,format=b,file=heap.bin 4812 |dump内存运行情况,用eclipse mat进行分析
注:内存dump太大时,将jdk转换为jrocket,大幅提升效率
2.查看java 进程
jps| window环境 -m参数查看进程详情
ps | linux环境 ps ax |grep java
3.命令行模式:jconsole 选择相应进程
在启动的界面中:
- 概述:有关堆内存使用情况,线程,类加载和CPU使用情况的综述;
- 内存:内存的详细情况,堆和其他内存;
- 线程:峰值/活动线程,另外,各个线程的明细信息,检测死锁;
- 类:监控加载和卸载的类;
- vm摘要:有关vm的明细信息
- MBean:当前Java程序的MBean(