MAT使用

news2024/11/15 8:15:48

概念

Shallow heap & Retained Heap

Shallow Heap就是对象本身占用内存的大小。

Retained Heap就是当前对象被GC后,从Heap上总共能释放掉的内存(表示如果一个对象被释放掉,那会因为该对象的释放而减少引用进而被释放的所有的对象(包括被递归释放的)所占用的heap大小)。

具体可以参考:官方文档

Incoming References & Outgoing References

Incoming References :表示该对象的入节点(引用到该对象的对象)
Outgoing References:表示该对象的出节点(被该对象引用的对象)

举个例子,对象 A 持有对象 B 的引用,对象 B 持有对象 C 的引用;

对象 B 的“Incoming references”是对象 A、B 的类对象
对象 B 的“outgoing references”是对象 C、 B 的类对象

视图

Histogram

列出内存中的对象,对象的个数以及大小。支持正则表达式查找,也可以计算出该类所有对象的retained size
在这里插入图片描述

Dominator Tree

列出最大的对象以及其依赖存活的Object (大小是以Retained Heap为标准排序的)。
Dominator Tree和Histogram的区别是站的角度不一样,Histogram是站在类的角度上去看,Dominator Tree是站在对象实例的角度上看,Dominator Tree可以更方便的看出其引用关系。
在这里插入图片描述

Unreachable

Unreachable指的是不可达对象。
在这里插入图片描述

Group

在Histogram和Domiantor Tree界面,可以选择将结果用另一种Group的方式显示(默认是Group by Object),切换到Group by package,可以更好地查看具体是哪个包里的类占用内存大,也很容易定位到自己的应用程序。
在这里插入图片描述

Path to GC Roots

查看一个对象到RC Roots的引用链。通常在排查内存泄漏的时候,我们会选择exclude all phantom/weak/soft etc.references,意思是查看排除虚引用/弱引用/软引用等的引用链,因为被虚引用/弱引用/软引用的对象可以直接被GC给回收,我们要看的就是某个对象否还存在Strong 引用链(在导出HeapDump之前要手动出发GC来保证),如果有,则说明存在内存泄漏,然后再去排查具体引用。

注意:Histogram是在类的角度进行分析,而Path To GC Roots是用来分析单个对象的,因此在Histogram无法使用Path To GC Roots查询,可以使用Merge Shortest Paths to GC roots查询,它表示从GC roots到一个或一组对象的公共路径。
在这里插入图片描述

OQL

OQL全称为Object Query Language,类似于SQL语句的查询语言,能够用来查询当前内存中满足指定条件的所有的对象。它的查询语句的基本格式为:

SELECT * FROM [ INSTANCEOF ]	<class_name> [ WHERE <filter-expression>]

在这里插入图片描述

DUMP文件比较

Histogram视图下可以通过工具栏的对比按钮来进行对比。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1943241.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用Docker来辅助开发

现在好像用Docker是越来越多了。之前其实也看过docker的原理&#xff0c;大概就是cgroup那些&#xff0c;不过现在就不看原理了&#xff0c;不谈理论&#xff0c;只看实际中怎么用&#xff0c;解决眼前问题。 用docker来做开发&#xff0c;其实就是解决的编译环境的差异&#…

解决kkfileview 使用https预览问题记录

场景&#xff1a;项目使用了开源的kkfileview进行文件在线预览&#xff0c;部署方式使用的是docker&#xff0c;使用IP进行访问&#xff0c;但是http协议直接访问有漏洞告警&#xff0c;现在需要调整为https&#xff0c;且仍然需要使用IP访问。 kkfileview官网kkFileView - 在线…

大数据架构体系演进

传统离线大数据架构 ​ 21世纪初随着互联网时代的到来&#xff0c;数据量暴增&#xff0c;大数据时代到来。Hadoop生态群及衍生技术慢慢走向“舞台”&#xff0c;Hadoop是以HDFS为核心存储&#xff0c;以MapReduce&#xff08;简称MR&#xff09;为基本计算模型的批量数据处理…

重新盘点更新!靠谱且实用的8个AI绘画网站,国产之光

在从事AI绘画领域研究期间&#xff0c;结识了众多新朋友。越来越多人问AI工具就会在问国内用什么&#xff0c;国内什么好用&#xff0c;大家都知道了SD和MJ属于AI绘图领域的两尊大神&#xff0c;问国内其实背后是希望简简单单画图&#xff0c;能快捷方便体验&#xff0c;并且出…

深入理解Linux网络(八):内核如何发送网络包

深入理解Linux网络&#xff08;八&#xff09;&#xff1a;内核如何发送网络包 一、总览二、网卡启动准备三、ACCEPT 创建新 SOCKET四、开始发送数据send 系统调⽤实现传输层处理传输层拷贝传输层发送 网络层发送原理邻居⼦系统网络设备子系统软中断调度igb网卡驱动发送发送完成…

集成学习在数学建模中的应用

集成学习在数学建模中的应用 一、集成学习概述&#xff08;一&#xff09;基知&#xff08;二&#xff09;相关术语&#xff08;三&#xff09;集成学习为何能提高性能&#xff1f;&#xff08;四&#xff09;集成学习方法 二、Bagging方法&#xff08;一&#xff09;装袋&…

YOLO--置信度(超详细解读)

YOLO&#xff08;You Only Look Once&#xff09;算法中的置信度&#xff08;Confidence&#xff09;是一个关键概念&#xff0c;用于评估模型对预测框内存在目标对象的信心程度以及预测框对目标对象位置的准确性。 一、置信度的定义 数值范围&#xff1a;置信度是一个介于0和…

分享 12 款免费开源 Ai 编码助手,助您简化开发工作流程

AI 编码助手是一种利用人工智能和机器学习来帮助开发人员编写、调试和优化代码的软件工具。这些助手旨在理解自然语言提示并提供代码建议、生成代码片段&#xff0c;甚至根据提供的上下文完成整个功能。 它们与 Visual Studio Code、IntelliJ IDEA 等流行的开发环境集成&#…

uniapp原生插件开发实战——iOS打开文件到自己的app

用原生开发获取文件的名称、路径等能力封装为一个插件包供前端使用 首先根据ios插件开发教程,创建一个插件工程,template 选framework 开始编写代码: iOS 9 及以下版本会调用以下方法: - (BOOL)application:(UIApplication *_Nullable)application openURL:(NSURL *_Nul…

《简历宝典》18 - 简历中“技术能力”,如何丰满且有层次,Java篇

上一节&#xff0c;我们学习了前端开发&#xff0c;在简历中的 “技术能力” 模块的书写。这一节&#xff0c;我们说一下Java开发的 “技术能力” 该如何书写&#xff0c;从而使这个模块更加的丰满且有层次感。 目录 1 Java开发工作所包含的技能点 2 招聘市场对Java开发的要…

【人工智能 | 机器学习 | 理论篇】模型评估与选择

文章目录 1. 经验误差与过拟合2. 模型评估方法2.1 模型评估概念2.2 留出法2.3 k 折交叉验证法2.4 自助法2.5 调参与最终模型 3. 性能度量3.1 均方误差3.2 错误率、精度3.3 查准率、查全率3.3 扩展3.4 ROC 与 AUC3.5 代价敏感错误率与代价曲线 4. 比较检验4.1 假设检验4.2 交叉验…

精亿内存条玄武光影系列DDR4 7200 RGB电竞内存条鲁大师跑分实测42万分 国货老牌 国产卫士在D5价格就不会起飞

精亿玄武光影DDR4 7200 RGB电竞内存条是一款高性能的内存产品,适用于追求极致性能的游戏玩家和电脑爱好者。根据你提供的信息,这款内存条在鲁大师跑分中获得了42万分的成绩,说明其性能表现非常出色。 精亿玄武光影DDR5 7200 RGB电竞内存 以下是关于这款内存条的一些特点和优势…

【Javascript】前端面试基础2【每日学习并更新10】

模块化开发是怎样做的&#xff1f; 立即执行函数&#xff0c;不暴露私有成员 异步加载JS的方式有哪些 那些操作会造成内存泄漏 是什么&#xff1a;内存泄漏指任何对象在您不再拥有或需要它之后仍然存在造成内存泄漏&#xff1a; setTimeout的第一个参数使用字符串而非函数的…

Windows系统设置暂停更新,暂停时间可达3000天,“永久”暂停更新,亲测有效

好多小伙伴被Windows系统的更新搞得很烦&#xff0c;经常在使用中自己下载更新包&#xff0c;占用网路资源&#xff0c;过段时间就要更新&#xff0c;特别讨厌 今天教你一招&#xff0c;可以暂停更新长达3000天&#xff0c;亲测有效 1、打开系统CMD命令执行窗口&#xff0c;输…

Linux -软件安装

1.为什么安装软件 项目开发好需要部署&#xff0c;而项目本身可能依赖其他软件。 这时在部署项目时就需要安装依赖的软件。 比如: jdk mysql tomcat redis rabbitmq es等 2. centos软件安装的方式 1. 二进制安装。---只需要解压就可以。 只针对特殊平台。 比如jdk tomcat 2. R…

迈巴赫GLS480升级魔术车身空气悬挂脱困系统有哪些实际作用

迈巴赫 GLS480 升级智能魔术车身脱困系统具有以下实际作用&#xff1a; 1. 增强脱困能力&#xff1a;在车辆陷入困境&#xff0c;如泥泞、沙地或雪地时&#xff0c;该系统能够通过主动调整悬挂和车轮的动力分配&#xff0c;帮助车辆更有效地摆脱困境。 2. 提升行驶稳定性&…

测试基础(二)

目录 等价类划分 解决问题 说明 分类 步骤 应用场景 边界值分析 解决问题 选择节点 步骤 优化 判定表 解决问题 说明 定义 组成 规则 步骤 应用场景 场景法 说明 应用场景 注意 错误推荐法 定义 应用场景 等价类划分 解决问题 穷举问题。 说明 等…

synchronized、volatile与CAS:Java线程同步机制概览

synchronized、volatile与CAS&#xff1a;Java线程同步机制概览 1、synchronized&#xff08;悲观锁&#xff09;2、volatile&#xff08;轻量级同步&#xff09;3、CAS&#xff08;乐观锁&#xff0c;非阻塞&#xff09; &#x1f496;The Begin&#x1f496;点点关注&#x…

职场进阶:从职场小白到专家的心路历程与实战策略

职场进阶&#xff1a;从职场小白到专家的心路历程与实战策略 引言 在职场这条漫长而充满挑战的道路上&#xff0c;每个人都渴望找到属于自己的那片天空。从初入职场的懵懂小白&#xff0c;到最终成为某一领域的专家&#xff0c;这不仅仅是一个职位晋升的过程&#xff0c;更是个…

中年骑友的穿搭指南

在骑行的世界里&#xff0c;合适的装备不仅是对安全的一种保障&#xff0c;更是对个性和风格的一种表达。对于中年骑友而言&#xff0c;选择合适的骑行穿搭尤为重要。他们不仅需要考量保护功能&#xff0c;同时也需在舒适与风格之间找到平衡。本文将深入探讨适合中年骑友的骑行…