项目性能优化-内存泄漏检测与修改

news2024/11/16 14:25:15

最近终于有空优化一波项目的性能了,第一波借助Android Studio自带的Profiler工具检测内存泄漏。

第一步、创建Profiler的SESSIONS

在这里插入图片描述

在这里插入图片描述

第二步、进入MEMORY内存监控

右侧带有绿色原点的就是此时运行的Profiler的SESSION,点击右侧MEMORY进入内存监控的详情模块
在这里插入图片描述

第三步、选中“Capture heap dump”,点击"Record"

在这里插入图片描述

第四步、查看Heap Dump文件

第三步中抓取一段时间后,会自动停止,并打开Heap Dump文件
在这里插入图片描述
可以看到抓取到2个会导致内存泄漏的地方,点击查看详细的内存泄漏
在这里插入图片描述
2:内存泄漏所在的类
3:内存泄漏的列表
4:查看内存泄漏的引用链
5:展示最近的GC点
6:显示会产生内存泄漏的详细位置和变量
在这里插入图片描述
在这里插入图片描述
在主Fragment采用List集合维护要切换的子Fragment,这样集合中关联了Fragment对象,就不能及时的销毁对象,就会存在内存泄漏的风险。

第五步、修改内存泄漏点

直接把Fragment的生命周期交给FragmentManager,通过设置TAG,来查找Fragment。
在这里插入图片描述

第六步、重新检测

在这里插入图片描述
至此,就修复了内存泄漏的风险。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/706107.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

缓存三击-缓存穿透、缓存雪崩、缓存击穿

缓存三击-缓存穿透、缓存雪崩、缓存击穿 ⭐⭐⭐⭐⭐⭐ Github主页👉https://github.com/A-BigTree 笔记链接👉https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ Spring专栏👉https://blog.csdn.net/weixin_53580595/category_12279…

【产品设计】掌握“4+X”模型,从0到1构建B端产品

“4X”模型是什么 4个阶段:规划阶段,设计阶段,实现阶段,迭代阶段 X:项目管理,数据分析,产品运营 1、规划阶段 这是一个产品的开始,它决定了产品的设计方向和基调。主要包括用户分析、市场分…

爬虫入门指南(4): 使用Selenium和API爬取动态网页的最佳方法

文章目录 动态网页爬取静态网页与动态网页的区别使用Selenium实现动态网页爬取Selenium 的语法及介绍Selenium简介安装和配置创建WebDriver对象页面交互操作 元素定位 等待机制页面切换和弹窗处理截图和页面信息获取关闭WebDriver对象 使用API获取动态数据未完待续.... 动态网页…

JVM-垃圾回收-基础知识

基础知识 什么是垃圾 简单说就是没有被任何引用指向的对象就是垃圾。后面会有详细说明。 和C的区别 java:GC处理垃圾,开发效率高,执行效率低 C:手工处理垃圾,如果忘记回收,会导致内存泄漏问题。如果回…

Linux Mint 21.2“Victoria”Beta 发布

导读近日消息,Beta 版 Linux Mint 21.2 “Victoria” 于今天发布,用户可以访问官网下载镜像。 Linux Mint 21.2 代号 “Victoria” ,基于 Canonical 长期支持的 Ubuntu 22.04 LTS(Jammy Jellyfish)操作系统&#xff0…

2023年第三届工业自动化、机器人与控制工程国际会议

会议简介 Brief Introduction 2023年第三届工业自动化、机器人与控制工程国际会议(IARCE 2023) 会议时间:2023年10月27 -30日 召开地点:中国成都 大会官网:www.iarce.org 2023年第三届工业自动化、机器人与控制工程国际…

JAVA http

javahttp 请求数据格式servletservlet生命周期servletrequest获取请求数据解决乱码response相应字符&字节数据 请求数据格式 servlet servlet生命周期 servlet request获取请求数据 解决乱码 response相应字符&字节数据 response.setHeader("content-type",…

A. Portal(dp优化枚举)

Problem - 1580A - Codeforces CQXYM发现了一个大小为nm的矩形。矩形由n行m列的方块组成,每个方块可以是黑曜石方块或空方块。CQXYM可以通过一次操作将黑曜石方块变为空方块,或将空方块变为黑曜石方块。 一个大小为ab的矩形M被称为传送门,当…

【Linux】程序员的基本素养学习

这是目录 写在前面一、内存管理1、分段2、分页 二、线程管理三、静态库1、编译1.1、预处理1.2、编译1.3、汇编1.4、链接2、编译器3、目标文件**.text****.data****.bss****__attribute__** 3.1、符号3.2、兼容C语言 -- extern C4、链接 -- ld 写在前面 本文记录自己的学习生涯…

五.组合数据类型

目录 1、数组类型 声明数组 初始化数组 数组赋值 访问数组元素 2、切片类型 1、定义切片 2、切片初始化 3、访问 4、空(nil)切片 5、切片的增删改查操作: 3、指针类型 1、什么是指针 2、如何使用指针、指针使用流程: 3、Go 空指针 4、指…

chatgpt赋能python:如何将Python打包-一个SEO优化指南

如何将Python打包 - 一个SEO优化指南 作为一名拥有10年Python编程经验的工程师,我意识到很多Python开发者面临一个共同的问题:如何将他们的Python项目打包并发布到PyPI上?打包一个Python项目不仅可以让您的代码更加组织化,也可以…

如何拆分PDF?拆分PDF软件分享!​

那么如何拆分PDF?PDF是一种流行的电子文档格式,它可以在不同的操作系统和设备上进行查看和共享,而不会因为不同的软件或硬件而出现兼容性问题。同时,在使用的过程中,PDF拆分PDF文件是一个比较常见的需求,它…

threejs入门

个人博客地址: https://cxx001.gitee.io 前言 随着HTML5的发布,我们可以通过WebGL在浏览器上直接使用显卡资源来创建高性能的二维和三维图形,但是直接使用WebGL编程来创建三维场景十分复杂而且还容易出问题。而使用Three.js库可以简化这个过程&#xff…

机器学习——决策树1(三种算法)

要开始了…内心还是有些复杂的 因为涉及到熵…单纯的熵,可以单纯 复杂的熵,如何能通俗理解呢… 我也没有底气,且写且思考吧 1. 决策树分类思想 首先,决策树的思想,有点儿像KNN里的KD树。 KNN里的KD树,是每…

如何将非平稳的时间序列变为平稳的时间序列?

可以采用现代信号处理算法,比如小波分解,经验模态分解,变分模态分解等算法。 以经济金融领域的数据为例,经济金融领域的数据作为一种时间序列,和我们平常工程领域分析的信号具有相同特性。一般来说,信号是…

在 Maya、ZBrush 和 Arnold 中重塑来自邪恶西部的 Edgar Gravenor

今天瑞云渲染小编给大家带来Giancarlo Penton 介绍的Edgar Gravenor项目背后过程,展示了皮肤纹理和头发是如何制作的,并解释了详细的服装是如何设置的。 介绍 大家好,我的名字是Giancarlo Penton。我是一名3D角色艺术家,最近毕业…

从零开始 Spring Boot 53:JPA 属性转换器

从零开始 Spring Boot 53:JPA 属性转换器 图源:简书 (jianshu.com) 这篇文章介绍如何在 JPA(Hibernate)中使用属性转换器。 在前篇文章中,我介绍了如何使用Embedded和Embeddable将一个类型嵌入实体类,并映…

初识mysql之表内容的增删查改

目录 一、插入 1. 插入基础语法 2. 单行数据 全列插入 3. 多行数据 全列插入 4. 插入,失败则更新 5. 替换 二、基础查询 1. 查询基础语法 2. 全列查询 3. 指定列查询 4. 表达式查询 5. 结果去重 6. where条件 6.1 比较运算符与逻辑运算符 6.2 查询…

爬虫入门指南(5): 分布式爬虫与并发控制 【提高爬取效率与请求合理性控制的实现方法】

文章目录 前言多线程与多进程多线程多进程多线程和多进程的选择 使用Scrapy框架实现分布式爬虫1. 创建Scrapy项目2. 配置Scrapy-Redis3. 创建爬虫4. 启动爬虫节点5. 添加任务到队列 并发控制与限制请求频率并发控制限制请求频率 未完待续... 前言 在进行爬虫任务时,…

STM32外设系列—红外遥控

文章目录 一、红外遥控简介二、红外遥控的原理三、二进制脉冲编码3.1 NEC码的位定义3.2 NEC遥控指令的数据格式 四、红外遥控程序设计思路五、红外遥控程序设计5.1 红外遥控初始化程序5.2 记录高电平持续时间函数5.3 中断服务函数5.4 读取键值5.5 参数定义 六、应用实例 一、红…