1、自带的jconsole工具。

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

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

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

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

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

(3)通过jconsole生成

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

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

点击dumpHeap按钮生成dump文件。

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

原文:http://blog.csdn.net/zcc_0015/article/details/38454651

java内存分析_java内存分析总结相关推荐

  1. java线程内存溢出_Java常见问题分析(内存溢出、内存泄露、线程阻塞等)

    Java垃圾回收机制(GC) 1.1 GC机制作用 1.2 堆内存3代分布(年轻代.老年代.持久代) 1.3 GC分类 1.4 GC过程 Java应用内存问题分析 2.1 Java内存划分 2.2 J ...

  2. java 如何排查内存溢出_java 内存溢出排查

    测试代码,如下示例: import java.util.ArrayList; import java.util.List; /** * @Description 测试内存溢出, 启动时设置参数,最大堆 ...

  3. java map 参数传递_Java参数传递分析

    Java之中的参数传递,只有按值传递!!! 传递类型 按值传递:就是把原来的参数的值,拷贝一份,将这个拷贝的值修改,而原来的旧的值不会修改. 引用传递:就是将参数的地址拿来使用,不去拷贝,直接在这个地 ...

  4. java 内存 回收_java内存回收

    一.为什么需要垃圾回收 如果不进行垃圾回收,内存迟早都会被消耗空,因为我们在不断的分配内存空间而不进行回收.除非内存无限大,我们可以任性的分配而不回收,但是事实并非如此.所以,垃圾回收是必须的. 二. ...

  5. java内存垃圾_Java内存区域与垃圾回收

    1,Java内存区域 1.1,运行时数据区域 java虚拟机在java的执行过程中将其管理的内存划分若干区域,有的随虚拟机进程的启动而一直存在,有的则依赖线程的启动和结束而建立和销毁. 1.1.1,程 ...

  6. java visualvm 教程_Java性能分析神器--VisualVM Launcher[1]

    Java性能分析神器1--VisualVM Launcher VisualVM 当你日复一日敲代码的时候,当你把各种各样的框架集成到一起的时候,看着大功告成成功运行的日志,有没有那么一丝丝迷茫和惆怅: ...

  7. java数组内存溢出_Java内存溢出问题总结

    使用Java那么久,在此总结一下Java中常见的内存溢出问题以及对应的解决思路 堆溢出 报错信息 java.lang.OutOfMemoryError: Java heap space 报错原因 堆中 ...

  8. java if在内存中_Java内存模型知识点小结---《深入理解Java内存模型》(程晓明)读书总结...

    一.Java内存模型介绍 内存模型的作用范围: 在Java中,所有实例域.静态域和数组元素存放在堆内存中,线程之间共享,下文称之为"共享变量".局部变量.方法参数.异常处理器等不会 ...

  9. java查看内存泄露_Java内存泄露如何排查

    Java内存泄露是常常出现的问题,Java攀登网进行了该问题的整理,具体的如下所示: 1.2 内存泄露Memory Leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内 存泄露危害可以忽略 ...

  10. JAVA 继承内存模型_Java内存模型

    JVM的组成 类加载器(classloader) 执行引擎(execution engine) 运行时数据区域(runtime data area) 对于Java程序员来说,在虚拟机自动内存管理机制下 ...

最新文章

  1. android约束布局中 链,Android-ConstraintLayout(约束布局)-Chains链(链条布局,Nice)
  2. Mongodb百亿级数据添加,修改,删除,查询等性能测试【四】
  3. java 常用十种设计模式示例归纳 | 已打包请带走
  4. java 搭建企业应用框架_溯源微服务开发体系:一位Java开发者的转型思考
  5. openresty获取nginx body内容体
  6. python日历函数_python 怎么定义一个函数,输出日历
  7. 我是如何把 Java 项目移植到 .NET 5.0 的
  8. centos7安装php5.2yum源操作_CentOS7使用阿里yum源进行升级和安装php70W
  9. 【JS】逻辑运算符 非! 与 或||(处理对象时注意)
  10. 西门子宣布美国充电桩扩产计划
  11. PXE-preboot execute environment
  12. 医药/医疗/互联网医疗服务平台/问诊/挂号/开药/处方/医生/医院/问诊订单管理/移动端问诊医疗系统/医生端处方开药系统/web端医药服务平台管理/axure原型/rp源文件/健康咨询/视频问诊/统计
  13. 【Spring AOP】基于注解的 AOP 编程
  14. js焦点图片层叠轮播切换滚动
  15. 七十三、分发系统介绍、expect脚本远程登录、expect脚本远程执行命令、expect传递参数...
  16. 贪吃蛇c语言代贴吧,【图片】C语言小游戏~贪吃蛇【c语言吧】_百度贴吧
  17. CC++初学者编程教程(6) 配置WindowsXP虚拟机与VC6.0
  18. 设置font标签居中显示
  19. Can‘t open /dev/sda3 exclusively. Mounted filesystem?
  20. FireFox插件RESTClient

热门文章

  1. 【Laravel】连接 sqlite 数据库 Database [xxx] not exist
  2. 10、MySQL锁等待,死锁,死锁检测
  3. 递归和非递归实现二叉排序树(BST)的查找操作
  4. P3385 【模板】负环
  5. MySQL光标的使用
  6. MySQL为表的所有字段添加数据
  7. 【JUC并发编程03】线程间通信
  8. 给JDK报了一个P4的Bug,结果居然……
  9. Mybatis一级缓存,二级缓存的实现就是这么简单
  10. 【Maven】maven 插件开发实战