内存泄露-Android Studio 生成Dump 的 HPROF 文件查看和分析工具

2024-02-09 20:38

本文主要是介绍内存泄露-Android Studio 生成Dump 的 HPROF 文件查看和分析工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

0. 文章参考

https://blog.csdn.net/rechanel/article/details/76578070

1. HPROF 文件 作用

HPROF查看工具会列出类、类的实例和实例的引用树,以此来帮助你跟踪内存的使用情况,找出内存泄漏的地方。

2. dump Hprof file

Android Studio 到导出 HPROF 文件步骤很简单,Moniter界面中点击 Dump Java Heap 即可

Dump Java Heap

3. HPROF文件查看工具的信息显示

名称描述
Class Name类名
Total Count该类的实例总数
Heap Count所选择的堆中该类的实例数量
Sizeof单个实例所占空间大小(如果美国实例所占空间大小不一样,则显示0)
Shallow Size堆里所有实例大小总和(Heap Count * Sizeof)
Retained Size该类所有实例所支配的内存大小
Instance具体实例
Reference Tree所选实例的引用,以及指向该引用的引用
DepthGC 根节点到所选实例的最短路径的深度
Shallow Size所选实例的大小
Dominating Size所选实例所支配的内存大小

4. HPROF文件操作实例

4.1 打开 Capture 视图,选择 HPROF 文件

Capture

4.2 查看 堆信息
  1. App heap 当前 app 使用的堆
  2. Image heap 当前 app 在硬盘上的内存映射
  3. Zygot heap -zygot 复制时继承的库、运行时类和常量的数据库。zygote 空间设备启动时创建,从不分配这里的空间

App heap

4.2 查看视图类型
  1. Class List View
  2. Package Three View

查看视图类型

5. HPROF文件分析工具中分析数据(重要)

用HPROF分析工具可以检测到泄漏的activities、分析出重复定义的字串。步骤如下

Analysis Task

这篇关于内存泄露-Android Studio 生成Dump 的 HPROF 文件查看和分析工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/695226

相关文章

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子