java内存分析总结

1、自带的jconsole工具。

      (1)如果是从命令行启动,使 JDK 在 PATH 上,运行 jconsole 即可。

      (2)如果从 GUI shell 启动,找到 JDK 安装路径,打开 bin 文件夹,双击 jconsole

      (3)当分析工具弹出时(取决于正在运行的 Java 版本以及正在运行的 Java 程序数量),可能会出现一个对话框,要求输入一个进程的 URL 来连接,

          也可能列出许多不同     的本地 Java 进程(有时包含 JConsole 进程本身)来连接。

       参照http://jiajun.iteye.com/blog/810150

2、自带的jmap工具

     jmap 是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用 SHELL jmap -histo pid>a.log可以将其保存到文本中去(windows下也可以使用),在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。

      (1)windows环境DOS查询端口和PID号:TaskList/svc
        (2)用netstat -ano命令,列出所有端口对应的PID

3、mat

   a、产生dump文件

       一个进程对应一个.hprof文件,
      (1)设置jvm的参数:-XX:+HeapDumpOnOutOfMemoryError生成的java_pid7888.hprof文件位于当前工程目录下;
      (2)通过jmap -dump:format=b,file=HeapDump.bin <pid>

     (3)通过jconsole生成

      选择 Mbean -> com.sun.management -> HotSpotDiagnos -> Operations -> dumpHeap

     在参数p0中填写保存dmp文件的路径,例如f:/my.hprof, 文件的后缀名要为hprof

      点击dumpHeap按钮生成dump文件。

    

   b、安装mat打开.hprof文件进行分析

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值