美文网首页
LeakCanary+Mat 内存泄漏检测及修改示例

LeakCanary+Mat 内存泄漏检测及修改示例

作者: 闫鹏飞写字的地方 | 来源:发表于2022-09-26 19:50 被阅读0次

    通过LeakCanary获取到内存泄漏信息(可达性分析的链路)

    image.png

    从底部确认是CommonFloorActivity发生了内存泄漏,沿着链路往上一点点看找出具体原因,GlideScreenTransform中持有了CommonFloorActivityContext,间接持有了CommonFloorActivity,导致无法释放CommonFloorActivity

    也可以通过Mat分析

    image.png

    获取到 Heap Dump file也就是2022-09-22_11-24-51_269.hprof

    格式转化一下,Mat才能读取

    示例:
    hprof-conv ./原始文件.hprof ./目标文件.hprof

    操作

    hprof-conv /Users/yanpengfei/Desktop/2022-09-22_11-24-51_269.hprof /Users/yanpengfei/Desktop/temp.hprof
    

    Mat读取转化后.hprof文件

    image.png

    点击Histogram

    image.png image.png

    选择排除弱引用和软引用


    image.png

    找到了GlideScreenTransform中持有了CommonFloorActivityContext,间接持有了CommonFloorActivity,导致无法释放CommonFloorActivity

    image.png

    相关文章

      网友评论

          本文标题:LeakCanary+Mat 内存泄漏检测及修改示例

          本文链接:https://www.haomeiwen.com/subject/ylowortx.html