Java 内存调试命令

来源:互联网 发布:上海网站的优化 编辑:程序博客网 时间:2024/06/07 17:52

一些内存调试命令在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  选择相应进程

   在启动的界面中:

  1. 概述:有关堆内存使用情况,线程,类加载和CPU使用情况的综述;
  2. 内存:内存的详细情况,堆和其他内存;
  3. 线程:峰值/活动线程,另外,各个线程的明细信息,检测死锁;
  4. 类:监控加载和卸载的类;
  5. vm摘要:有关vm的明细信息
  6. MBean:当前Java程序的MBean(如果有的话)的操作。

 

 

4.JvisualVm

     打开jvisualvm.exe,VisualVM的应用程序窗口的本地节点就会自动显示本地系统上运行的java程序的名称和进程id

     右击其中的一个本地应用/enable heap dump on oome/双击该本地应用


5.MAT for linux调试

       linux分析
          1.上传mat-linux至linux服务器
          2.修改ParseHeapDump.sh ,添加sudo 执行
             修改ParseHeapDump.sh和MemoryAnalyzer执行权限
          3.sudo ./ParseHeapDump.sh dump.bin文件
         4.将生成的文件与dump.bin文件统一复制至windows本地
         5.用MAT打开bin文件即可

请注意:权限问题,MemoryAnalyzer.ini设置内存大小

 

原创粉丝点击