Android性能优化—Profiler Memory使用

2020-09-15  本文已影响0人  momxmo

一、简介

Profiler Memory是AndroidStudio自带的内存分析小工具,可以在Profiler打开Memory内存分析模块,官方文档地址

image.png

二、Profiler Memory使用和分析

图形控制面板介绍


image.png

Memory Profiler 的默认视图包括以下各项:

  1. 用于强制执行垃圾回收事件的按钮。
  2. 用于捕获堆转储的按钮。
    注意:只有在连接到搭载 Android 7.1(API 级别 25)或更低版本的设备时,才会在堆转储按钮右侧显示用于记录内存分配的按钮。
  3. 用于指定分析器多久捕获一次内存分配的下拉菜单。选择适当的选项可帮助您在分析时提高应用性能
  4. 用于缩放时间轴的按钮。
  5. 用于跳转到实时内存数据的按钮。
  6. 事件时间轴,显示活动状态、用户输入事件和屏幕旋转事件。
  7. 内存使用量时间轴,它会显示以下内容:
    • 一个堆叠图表,显示每个内存类别当前使用多少内存,如左侧的 y 轴以及顶部的彩色键所示。
    • 一条虚线,表示分配的对象数,如右侧的 y 轴所示。
    • 每个垃圾回收事件的图标。
image.png
其中类型划分包三种方式:class类型、package包名、callstack调用栈,我这边这里使用包名划分的方式方便我们快速定到我们项目代码中那个关键位置占用内存比较多,可以有针对性去快速分析;
堆的类型划分:(app heap)应用分配的内存,(image heap)系统启动镜像,启动期间预加载的类,这部分的分配保证不会移动和消失,(zygote heap)孵化器的堆,应用进程就是从孵化器fork而来,内存也相应的fork一份 image.png

如上图:我们可以知道com开头的包名占用的内存情况

三、案例

分析应用中ActivityFragment实例存在内存泄漏的数据

过滤器显示数据类型包括:

内存问题类型:

上一篇 下一篇

猜你喜欢

热点阅读