Android Studio Profiler 检查内存

这篇具有很好参考价值的文章主要介绍了Android Studio Profiler 检查内存。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Android Studio Profiler  检查内存简单介绍

如何使用?

第一步:点击Profiler按钮

Android Studio Profiler 检查内存

 第二步:选择

Android Studio Profiler 检查内存

 第三步:选择Capture heap dump 并点击Record

Android Studio Profiler 检查内存

解释相关按钮的功能

Android Studio Profiler 检查内存

  • 垃圾桶按钮:用于强制执行垃圾回收事件的按钮,也就是GC。需要进行强制GC时可以点击。

Android Studio Profiler 检查内存

  • Capture heap dump:抓取堆栈:(可以用来分析普通内存泄露问题)

Android Studio Profiler 检查内存

  • Record native allocations:抓取原生内存(C/C++)分配

Android Studio Profiler 检查内存

  • Record Java/Kotlin allcations:抓取Java/Kotlin 内存分配

 Android Studio Profiler 检查内存

  • Record:点击抓取一段时间的内存分配信息。

Android Studio Profiler 检查内存

  • Others:应用使用的系统无法确定如何分类的内存。

  • Code:应用用于处理代码和资源(如 dex 字节码、经过优化或编译的 dex 代码、.so 库和字体)的内存。

  • Stack:应用中的原生堆栈和 Java 堆栈使用的内存。这通常与应用运行多少线程有关。

  • Graphics:图形缓冲区队列为向屏幕显示像素(包括 GL 表面、GL 纹理等等)所使用的内存。(请注意,这是与 CPU 共享的内存,不是 GPU 专用内存。)

  • Native:从 C 或 C++ 代码分配的对象的内存。

即使应用中不使用 C++,即使编写的代码采用 Java 或 Kotlin 语言,Android 框架仍使用原生内存代表您处理各种任务,如处理图像资源和其他图形。

  • Java:从 Java 或 Kotlin 代码分配的对象的内存。

  • Allocated:应用分配的 Java/Kotlin 对象数。此数字没有计入 C 或 C++ 中分配的对象。

查看内存分配情况

选择Capture heap dump选项,点击Record。

Android Studio Profiler 检查内存

Android Studio Profiler 检查内存

 Leaks:当存在泄露时,会提示相应的类,可以点击跳转。可以使用已分配对象列表上方的三个菜单选择需检查的堆以及如何组织数据。

Android Studio Profiler 检查内存

选择需检查的堆:

Android Studio Profiler 检查内存

  • image heap:系统启动映像,包含启动期间预加载的类。此处的分配确保绝不会移动或消失。

  • zygote heap:写时复制堆,其中的应用进程是从 Android 系统中派生的。

  • app heap:您的应用在其中分配内存的主堆。

选择如何安排分配

Android Studio Profiler 检查内存

Arrange by class:根据类名称对所有分配进行分组。这是默认值。

Arrange by package:根据软件包名称对所有分配进行分组。

Arrange by callstack:将所有分配分组到其对应的调用堆栈。

选择如何安排分配

Android Studio Profiler 检查内存

  • Show all classes:展示所有Class类(包括系统类),这是默认值。

  • Show activity/fragment Leaks:展示泄露的activity/fragment。

  • Show project class:展示项目的Class类。

Android Studio Profiler 检查内存

  • Allocations:对象个数 , new一个对象就代表一个。如果出现多个 , 就要考虑是否有内存泄漏了。

  • Native Size:此对象类型使用的原生内存总量(以字节为单位)。只有在使用 Android 7.0 及更高版本时,才会看到此列。

  • 您会在此处看到采用 Java 分配的某些对象的内存,因为 Android 对某些框架类(如 Bitmap)使用原生内存。

  • Shallow Size:此对象类型使用的 Java 内存总量(以字节为单位)。

  • Retained Size:为此类的所有实例而保留的内存总大小(以字节为单位)。

Android Studio Profiler 检查内存

  • Depth:从任意 GC 根到选定实例的最短跳数。

分析问题关注:Allocations  与 Shallow Size

实战的泄露问题分析

Android Studio Profiler 检查内存

 Android Studio Profiler 检查内存

NewMeFragment发生了内存泄露。

可以点击如图Show nearest GC root only 按钮,这时候就可以看到离他最近GC引用有两条。

    private final ArrayList<Fragment> mFoldFragments = new ArrayList<>(4);

所以需要在合适的地方释放。文章来源地址https://www.toymoban.com/news/detail-416323.html

到了这里,关于Android Studio Profiler 检查内存的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android Studio中App Inspection 或Profiler里网络请求数据显示中文乱码解决办法

    效果如下: 解决办法 Android studio在 Help中找到Edit Custom VM Options… 并打开文件,在文件中添加 最后重启AS可解决

    2024年02月12日
    浏览(55)
  • Android c++内存异常检查

    1、GWP-ASan  不消耗性能,支持app中非root手机调试; target sdk版本大于等于30; 不是一定能检测出,固定case反复测试可以提高检测出的概率; GWP-ASan  |  Android NDK  |  Android Developers (google.cn)

    2024年02月13日
    浏览(37)
  • Unity 内存性能分析器 (Memory Profiler)

    安装有两种 方式一: add package : com.unity.memoryprofiler 方式二: From Packages : Unity Registry 搜索 Memory Profiler 打开:Windows - Analysis - Memory Profiler 打开MemoryProfiler界面,可以链接真机检测,也可以在Editor检测。 点击Capture 保存当下帧的内容。 Capture 完毕之后,会保存本地一个镜像 :

    2024年02月03日
    浏览(68)
  • 4个python内存性能检测工具:memory_profiler、timeit、line_profiler、heartrate的使用案例

    这里总结了4个比较好的python性能检测工具,包括内存使用、运行时间、执行次数等方面。 1、memory_profiler查看内存的使用情况 memory_profiler可以用来测量python进程的内存使用情况。可以按行查看内存的使用情况。 memory_profiler 是一个监控进程内存消耗的模块,可以逐行分析 Py

    2024年02月01日
    浏览(45)
  • android 如何分析应用的内存(十五)——Visual Studio Code 调试Android应用

    在上一篇文章介绍了jdb调试java应用 接下来介绍用UI界面调试java应用,达到同jdb一样的效果。 同样的UI界面有很多选择,如Eclipse,Android Studio,Visual Studio Code.因为Android Studio的诸多不便,结合自身的使用习惯,这里推荐并介绍Visual Studio Code 安装必要的插件 在插件市场中,搜索

    2024年02月14日
    浏览(53)
  • Android开发之性能优化工具Profiler

    性能优化问题,在我们开发时都会遇到,但是在小厂和对自己要求不严格的情况下,我都很少去做性能优化; 在性能优化上,基本大家都是通过自己的开发经验和性能分析工具来发现问题,今天给大家分享一下小编最近使用的Profiler工具 帮助开发者了解应用的CPU,内存,网络

    2024年02月11日
    浏览(60)
  • Android开发之性能测试工具Profiler

    性能优化问题,在我们开发时都会遇到,但是在小厂和对自己要求不严格的情况下,我都很少去做性能优化; 在性能优化上,基本大家都是通过自己的开发经验和性能分析工具来发现问题,今天给大家分享一下小编最近使用的Profiler工具 帮助开发者了解应用的CPU,内存,网络

    2024年02月11日
    浏览(43)
  • 【错误记录】在 Android Studio 的 Terminal 终端执行 gradlew 报错 ( 无法将“gradlew”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称 )

    在 Android Studio 的 Terminal 终端执行 gradlew 报错 , 报错信息如下 : 在之前的 Terminal 中可以执行 gradlew 命令 ; 更新到最新版的 Android Studio Dolphin 2021.3.1 版本后 , 出现上述问题 ; 这里注意到 Windows 终端发生了改变 , 原来的中断是 Windows cmd 命令行中断 ; 最新的 Android Studio 中 , 使用的

    2024年02月12日
    浏览(54)
  • 常用的内存泄漏检查工具

    以下是一些常用的内存泄漏检查工具: 1. Valgrind:Valgrind是一种开源的内存调试和性能分析工具,可以检测内存泄漏、使用未初始化的内存、使用已释放的内存等问题。 2. AddressSanitizer(ASan):ASan是一种内存错误检测工具,可以检测内存泄漏、缓冲区溢出、使用未初始化的内

    2023年04月08日
    浏览(51)
  • C++/Python/MATLAB检查内存使用情况

    有时为了对电脑、服务器做运行情况监控,需要获取内存、cpu的使用情况。当处理CT图像数据的时候,由于需要内存较大,因此容易出现内存不足的问题,对此,在处理数据之前预先检查剩余内存是否充足很有必要。以下分别是三种编程语言下的内存检查代码。 C++检查可用内

    2024年02月19日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包