Leakcanary
2024-10-18 09:29:25
一、什么是内存泄漏
垃圾回收器无法回收应被回收的对象
比如:在Activity生命周期过程中,旋转屏幕时应新建activity,原activity应被销毁。但如果线程一直在引用此activity,则会出现OOM(out of memory)
二、常规检查内存泄漏的方法
1.通过统计平台了解oom
2.重现问题
3.在内存泄漏时dump内存
4.使用内存分析工具反复查看
常用java内存分析工具有MAT、YourKit
三、Leakcanary和MAT、YourKit对比
MAT -- 分析起来步骤繁琐,每次抓到dump文件,先要使用”hprof-conv test.hprof test1.hprof” 转换,再使用MAT分析。分析难度较高,初级工程师较难分析。
YourKit -- 商业化工具
Leakcanary -- 简单易用,查看路径简单,且实时记录log
四、Leakcanary用法
官方:https://github.com/square/leakcanary
build - clean project 加载Leakcanary 代码行中可联想出“Leakcanary”
通知栏中查看oom路径 查看reference 哪些地方引用了该类导致oom
并可实时抓取logcat日志,查看leakcanary日志。
最新文章
- MVC4在IIS6上部署遇到的问题
- unity, particleSystem的batch优化
- Spark如何解决常见的Top N问题
- orcl 行转列的存储过程
- 帮助中心 7D-我的私家设计师 设计师品牌服饰集成网 7D服装定制!
- UILabel 的属性设置
- Lambda表达式介绍
- Java之数据类型,变量赋值
- 剑指Offer——丑数
- (NO.00001)iOS游戏SpeedBoy Lite成形记(十八)
- LeetCode 905. Sort Array By Parity
- Sqrt Bo (水题)
- Linux下文件压缩与打包
- RSA算法工具
- JS在项目中用到的AOP, 以及函数节流, 防抖, 事件总线
- linux nginx php-fpm被攻击
- ionic的加载功能
- beego——日志处理
- 实战maven私有仓库三部曲之一:搭建和使用
- C#类型基础(1)