1.JVM性能诊断GUI工具概述
2.JConsle
连接分三种方式:本地,远程,高级;
注意:启动jconsole和运行程序的用户必须是一个,才可以进行监控;
3. Visual VM
3.1 概述
3.2 插件安装
选择安装插件
IDEA中安装Visual VM插件
3.3连接方式
3.4 主要功能
3.4.1 基本功能
3.4.2 堆dump文件
生成dump
装入dump文件
分析dump:还可以比较
执行HSQL分析
3.4.3 线程Dump文件
查看线程Dump文件
3.4.4 抽样器
4. eclipse MAT
4.1 概述
注意:MAT主要用来分析Dump文件;
Dump文件内容:
说明:
获取Dump文件
例:使用jmap获得dump文件
例:使用MAT获得dump文件
4.2 Dump文件分析
4.2.1Histogram直方图
4.2.2查看对应的GC Roots
4.2.3 Thread Overview
出引用链
4.3 深堆与浅堆
保留集:只能通过A被直接或间接访问到的对象;
如:S1的value指向hello;S2的value也指向hello;那么就不是保留集;
若只有S1的value指向hello,则这个是保留集;
对象实际大小
4.4 支配树
4.5 Tomcat堆内存溢出案例
4.6 内存泄露
1.静态集合类
2.单例模式
3.内部类持有外部类
4.各种连接,如数据库连接,网络连接和IO连接等
5.变量不合理作用域
6.改变哈希值
7.缓存的泄露
8.监听和回调
案例1:
案例2:
支持使用OQL语言查询对象信息