leakcanary shark 库解析 一

2023-12-25  本文已影响0人  vb12

shark是leakcanary 2.0之后引入的hprof分析库,用于替代效率低下的haha库,
在leakcanary中所处的位置如下图所示,包括shark-hprof,shark-graph,shark,shark-android四个模块


image.png

shark-hprof用于读取hprof文件,解析hprof,里边定义了hprof数据格式,和java的类,对象,基本数据类型一致


image.png
shark-graph 用于索引hprof,找到HeapClass HeapInstance HeapObjectArray HeapPrimitiveArray
image.png
shark用于过滤泄漏对象,构建GC引用链,找到泄漏路径
image.png

shark-android里 AndroidObjectInspectors用于检查一个对象是否泄漏及其泄漏,不泄漏原因。AndroidReferenceMatchers用户过滤掉系统或者library泄漏。


image.png
leakcanary源码分析:
image.png
image.png
上一篇 下一篇

猜你喜欢

热点阅读