大家好,今天小编为大家分享关于gg修改器可能不root吗_gg修改器必须得root吗的内容,赶快来一起来看看吧。
JVM 内存分析往往由团队较资深的同学来做,本系列通过3篇文章,深度解析并帮助读者全面深度掌握 MAT 的使用方法。即使没有 JVM 内存分析的实践经验,也能快速成为内存分析高手!
本系列共三篇文章如下, 本文是第一篇入门篇:
MAT(全名:Memory Analyzer Tool),是一款快速便捷且功能强大丰富的 JVM 堆内存离线分析工具。其通过展现 JVM 异常时所记录的运行时堆转储快照(Heap dump)状态(正常运行时也可以做堆转储分析),帮助定位内存泄漏问题或优化大内存消耗逻辑。
场景一:内存溢出,JVM堆区或方法区放不下存活及待申请的对象。如:高峰期系统出现 OOM(Out of Memory)异常,需定位内存瓶颈点来指导优化。
场景二:内存泄漏,不会再使用的对象无法被垃圾回收器回收。如:系统运行一段时间后出现 Full GC,甚至周期性 OOM 后需人工重启解决。
场景三:内存占用高。如:系统频繁 GC ,需定位影响服务实时性、稳定性、吞吐能力的原因。
Heap Dump 是 Java 进程堆内存在一个时间点的快照,支持 HPROF 及 DTFJ 格式,前者由 Oracle 系列 JVM 生成,后者是 IBM 系列 JVM 生成。其内容主要包含以下几类:
Shallow Heap 代表一个对象结构自身所占用的内存大小,不包括其属性引用对象所占的内存。如 java.util.ArrayList 对象的 Shallow Heap 包含8字节的对象头、8字节的对象数组属性 elementData 引用 、 4字节的 size 属性、4字节的 modCount 属性(从 AbstractList 继承及对象头占用内存大小),有的对象可能需要加对齐填充但 ArrayList 自身已对齐不需补充,注意不包含 elementData 具体数据占用的内存大小。
一个对象的 Retained Set,指的是该对象被 GC 回收后,所有能被回收的对象集合(如下图所示,G的 Retain Set 只有 G 并不包含 H,原因是虽然 H 也被 G 引用,但由于 H 也被 F 引用 ,G 被垃圾回收时无法释放 H);另外,当该对象无法被 GC 回收,则其 Retained set 也必然无法被 GC 回收。
Retained Heap 是一个对象被 GC 回收后,可释放的内存大小,等于释放对象的 Retained Heap 中所有对象的 Shallow Heap 的和(如下图所示,E 的 Retain Heap 就是 G 与 E 的 Shallow Heap 总和,同理不包含 H)。
如果所有指向对象 Y 的路径都经过对象 X,则 X 支配(dominate) Y(如下图中,C、D 均支配 F,但 G 并不支配 H)。Dominator tree 是根据对象引用及支配关系生成的整体树状图,支配树清晰描述了对象间的依赖关系,下图左的 Dominator tree 如下图右下方支配树示意图所示。支配关系还有如下关系:
OQL 是类似于 SQL 的 MAT 专用统一查询语言,可以根据复杂的查询条件对 dump 文件中的类或者对象等数据进行查询筛选。
outgoing references、ing references 可以直击对象间依赖关系,MAT 也提供了链式快速操作。
注:MAT 的产品能力非常丰富,本文简要总结产品特性帮大家了解全貌,在下一篇文章《JVM 内存分析实战进阶篇——核心功能及应用场景》中,会详细展开介绍各项核心功能的场景、案例、最佳实践等。
MAT 的工作原理是对 dump 文件建立多种索引,并基于索引来实现 [1]内存分布、[2]对象间依赖(如实体对象引用关系、线程引用关系、ClassLoader引用关系等)、[3]对象状态(内存占用量、字段属性值等)、[4]条件检索(OQL、正则匹配查询等)这四大核心功能,并通过可视化展现辅助 Developer 精细化了解 JVM 堆内存全貌。
此外,为了便于记忆与回顾,整理了如下脑图:
下图中 Y 表示支持,N 表示不支持,时间截至发稿前。
产品功能 |
MAT |
JProfiler |
Visual VM |
jhat |
jmap |
hprof |
对象关联分析、深浅堆、GC ROOT、内存泄漏检测、线程分析、提供自定义程序扩展扩展 |
Y |
N |
N |
N |
N |
N |
离线全局分析 |
Y |
N |
Y |
Y |
N |
N |
内存实时分配情况 |
N |
Y |
Y |
Y |
Y |
Y |
OQL |
Y |
N |
Y |
N |
N |
N |
内存分配堆栈、热点比例 |
N |
Y |
N |
N |
N |
N |
堆外内存分析 |
N |
N |
N |
N |
N |
N |
注 1:Dump 文件包含快照被转储时刻的 Java 对象 在堆内存中的分布情况,但快照只是瞬间的记录,所以不包含对象在何时、在哪个方法中被分配这类信息。
注 2:一般堆外内存溢出排查可结合 gperftools 与 btrace 排查,此类文章较多不展开介绍。
注:Quick Start 文章较多,本文着重介绍安装流程及使用技巧。
1、安装 MAT:戳【下载链接】;也可直接集成到 Eclipse IDE中(路径:Eclipse → Help → Eclipse Marketplace → 搜 “MAT”)。
2、调节 MAT 堆内存大小:MAT 分析师也作为 Java 进程运行,如果有足够的内存,建议至少分配 dump 文件大小*1.2 倍的内存给 MAT,这样分析速度会比较快。方式是修改MemoryAnalyer.ini文件,调整Xmx参数(Windows 可用搜索神器 everything 软件查找并修改、MAC OS 一般在 /Applications/mat.app/Contents/Eclipse/MemoryAnalyzer.ini,如找不到可用 Alfred 软件查询修改)。
3、获取堆快照 dump 文件(堆转储需要先执行 Full GC,线上服务使用时请注意影响),一般用三种方式:
4、分析 dump 文件:路径是 File → Open Heap Dump ,然后 MAT 会建立索引并分析,dump 文件较大时耗时会很长。分析后 dump 文件所在目录会有后缀为 index 的索引文件,也会有包含 HTML 格式的后缀为 zip 的文件。
5、完成索引计算后,MAT 呈现概要视图(Overview),包含三个部分:
6、如果代码比较复杂,需要继续使用 MAT 各种工具并结合业务代码进一步分析内存异常的原因。最常用的几项如下(具体案例、场景、使用方式在《JVM 内存分析工具 MAT 的深度讲解与实践——进阶篇》详细介绍):
1、注意对运行进程的性能影响:Heap dump 时会先进行 Full GC,另外为保证对象数据视图一致,需要在安全点 Stop The World 暂停响应,线上服务进行务必注意性能影响。可以采取以下技巧减少影响:
2、Dump 文件及建立的索引文件可能较大,如果开发机配置不足无法分析,可在服务器先执行分析后,基于分析后的索引文件直接查看结果,另外也需要注意磁盘占用问题:
3、其他
总结展望:至此本文讲解了 MAT 实践必备的初级内容,在下一篇《JVM 内存分析工具 MAT 的深度讲解与实践——进阶篇》会展开并详细介绍 MAT 丰富的核心功能,每个功能点讲解都会从具体场景聊起,帮助大家在实战场景下加深体会实现进阶。
原文链接:https:///post/6908665391136899079
以上就是关于gg修改器可能不root吗_gg修改器必须得root吗的全部内容,感谢大家的浏览观看,如果你喜欢本站的文章可以CTRL+D收藏哦。
gg修改器没root权限怎么开,GG修改器是如此神奇的一款应用 大小:11.36MB1,492人安装 如果你是一位热爱游戏的玩家,那么你一定不会错过GG修改器这样的应用。GG修改器可以……
下载光遇gg修改器怎么免root,免Root!光遇GG修改器让你畅玩游戏! 大小:15.12MB1,258人安装 光遇是一款非常受欢迎的冒险游戏,该游戏与众不同之处在于有一个迷人的背景音乐和独……
下载gg 修改器下载官网最新版,GG修改器下载官网最新版,唯一不变的是它的卓越表现 大小:5.07MB1,302人安装 在玩游戏时,我们总是想要拥有更好的游戏体验。然而,有时候无论是游戏内的道具还是……
下载gg修改器下载中文光遇,GG修改器改光遇 大小:11.36MB2,432人安装 能够修改手机软件和游戏参数,有效的提升手机运行和游戏时的性能软件,本身体积很小……
下载gg修改器中文版怎么修改,GG修改器中文版怎么修改 大小:15.25MB1,559人安装 GG修改器中文版是一款非常实用的游戏修改工具,它可以帮助玩家轻松修改游戏中的各种……
下载官方商店下载gg游戏修改器,为什么要选择官方商店下载gg游戏修改器 大小:7.40MB1,351人安装 对于大部分游戏爱好者来说,修改器是一个非常实用的工具。gg游戏修改器是其中一个相……
下载gg修改器如何用root,使用gg修改器前需要root权限 大小:16.46MB1,050人安装 如果你想要更好的游戏体验,可能会考虑使用gg修改器。然而,在使用gg修改器之前,你……
下载gg游戏修改器8.58.0,用GG游戏修改器8.58.0,让游戏变得更加精彩 大小:17.52MB1,172人安装 如果你是一名游戏爱好者,那么你肯定知道游戏修改器。而GG游戏修改器8.58.0则是其中……
下载gg修改器能不root_GG修改器能不能修改网游 大小:13.88MB2,484人安装 大家好,今天小编为大家分享关于gg修改器能不root_GG修改器能不能修改网游的内容,……
下载gg修改器最新版安装,GG修改器最新版安装 大小:17.75MB1,025人安装 GG修改器最新版是一款十分实用的工具,它可以让你在游戏中轻松修改你的游戏数据,例……
下载