不断学习,做更好的自己!💪
视频号CSDN简书欢迎打开微信,关注我的视频号:程序员朵朵点我点我 简介Memory Profiler 是 Android Profiler 中的一个组件,可帮助您识别可能会导致应用卡顿、冻结甚至崩溃的内存泄露和内存抖动。它显示一个应用内存使用量的实时图表,让您可以捕获堆转储、强制执行垃圾回收以及跟踪内存分配。
官方文档参考:使用 Memory Profiler 查看 Java 堆和内存分配
为什么使用内存分析器Android 提供了一个托管内存环境——当它确定你的应用不再使用某些对象时,垃圾收集器会将未使用的内存释放回堆。在所有 Android 版本的某个点上,系统必须短暂地暂停代码。大多数时候,停顿是不可察觉的。但是,如果你的应用程序分配内存的速度快于系统收集的速度,你的应用程序可能会被延迟,而收集器释放了足够的内存来满足你的分配。延迟可能会导致应用程序跳过帧并导致明显的慢速。
即使你的应用程序没有表现出缓慢,如果它泄露了内存,它仍然可以保留那个内存,即使它在后台。通过强制不必要的垃圾收集事件,这种行为可以降低系统内存性能的其他部分。最终,系统不得不杀死你的应用程序来回收内存。然后当用户返回到你的应用程序时,它必须重新启动。
为了帮助防止这些问题,您应该使用内存分析器来执行以下操作:
在可能导致性能问题的时间轴中寻找不良的内存分配模式
Dump Java 堆,以便在任何时间查看哪些对象正在使用内存。长时间的堆转储可以帮助识别内存泄漏。
在正常和极端的用户交互过程中记录内存分配,以精确地确定您的代码在短时间内分配的对象或分配被泄漏的对象。
有关可以减少应用程序内存使用的编程实践的信息,请参阅管理应用程序的内存。
内存分析器概述-
用于强制执行垃圾回收事件的按钮。
-
用于捕获堆转储的按钮。 注意:只有在连接到搭载 Android 7.1(API 级别 25)或更低版本的设备时,才会在堆转储按钮右侧显示用于记录内存分配的按钮。
-
用于指定分析器多久捕获一次内存分配的下拉菜单。选择适当的选项可帮助您在分析时提高应用性能。
-
用于缩放时间轴的按钮。
-
用于跳转到实时内存数据的按钮。
-
事件时间轴,显示活动状态、用户输入事件和屏幕旋转事件。
-
内存使用量时间轴,它会显示以下内容:
- 一个堆叠图表,显示每个内存类别当前使用多少内存,如左侧的 y 轴以及顶部的彩色键所示。
- 一条虚线,表示分配的对象数,如右侧的 y 轴所示。
- 每个垃圾回收事件的图标。