Android Studio Profiler使用心得 检测内存泄露问题
最近在分析app的内存泄露问题研究了下as的profiler功能 这里记录下个人心得
内存泄露相关文档:https://juejin.im/post/5a652d31518825734108080d
首先 对于profiler基础介绍 :https://blog.csdn.net/gaugamela/article/details/79027538
下面是个人心得
1.首先得出结论profiler不详细提供分析c或c++库进行的内存占用 其中包括android 系统使用的库或者自己的.so库 它们占用的内存在下面Native部分统计
2.profiler统计中详细可以查看的内存占用主要就是下图java部分和allocated部分了(不知道这个 看profiler的介绍 内存占用不管怎么算 数字都对应不上 哈哈)
3.我们看下面 shallow size 此堆中所有实例的总大小(以字节为单位)。其实算是比较真实的java堆内存
比如下图 java堆中占用5.2M内存 在选定的时间点 java占用shallow size统计的1M左右内存(单位为字节)
看左边String 数据 在选定时间段内 分配了202个 回收了182个 其中剩下的就是未回收的 其中会包括正在使用的部分或其他
点入可以看到 这个数据的分配时间和回收时间 没有回收的会看到 没有标注回收时间 可以在下方查看代码调用的地方 然后进行处理
个人经验 可以让某个功能反复运行几个周期 然后在profiler中选定整个周期时间 从开始内测分配的时间(坡度开始)到最终释放的时间(周期回收的坡底)这样 多个周期结束 这个时间段内 统计的内存占用 为整个过程完成后剩下的 占用情况 这样就可以进一步分析 内存泄露情况了
- MySQL中的binlog和redo浅析(r12笔记第5天)
- WordPress发布/更新文章、提交/审核评论自动清理腾讯云CDN缓存
- 使用sysbench压力测试MySQL(一)(r11笔记第3天)
- 分享一下php7和其他php多版本共存的配置教程
- 使用sysbench压力测试MySQL(二)
- 使用sysbench压力测试MySQL(三)(r12笔记第6天)
- 解决IE响应式的解决方案css3-mediaqueries.js不生效问题
- MySQL传输表空间小结(r12笔记第2天)
- swingbench压测Oracle小记(r12笔记第20天)
- 分享最近对网站外链跳转页面代码的一些改善
- swingbench压测Oracle小记(r12笔记第19天)
- Oracle闪回原理测试(三)(r12笔记第16天)
- 利用JS生成二维码图片,优化WEB性能及页面加载速度
- Go语言的指针 & *
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- laravel框架实现敏感词汇过滤功能示例
- python 接收处理外带的参数方法
- Django框架实现的简单分页功能示例
- php测试kafka项目示例
- Python读取YUV文件,并显示的方法
- php-7.3.6 编译安装过程
- PHP查找一列有序数组是否包含某值的方法
- python 从文件夹抽取图片另存的方法
- laravel框架使用极光推送消息操作示例
- 对pycharm 修改程序运行所需内存详解
- Python小工具之消耗系统指定大小内存的方法
- Thinkphp框架+Layui实现图片/文件上传功能分析
- PHP实现单例模式建立数据库连接的方法分析
- 解决Python2.7中IDLE启动没有反应的问题
- PHP中mysqli_get_server_version()的实例用法