关于内存相关的梳理

1 关键字 总结

(lowmemory,anr in)


2 知识储备

   虚拟机原理   
  垃圾回收算法 又包含标记 和清除两种算法
  标记:程序计数器-已过时,可达性分析
  具体可见 http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.mat.ui.help%2Fconcepts%2Fgcroots.html&cp=37_2_3
  清除:标记-清除算法 ( mark-sweep ),复制算法,标记-压缩算法,分代收集算法,(老年代和新生代)

  个人总结:

  哪些是虚拟机能自动回收的,哪些是需要我们注意的呢
  1 native相关的还是需要手动释放(bitmap,jni传过来的相关的对象)
  2 一个类里面的成员变量,非静态内部类有没有被更长的生命周期对象引用,没有则可以自动被回收,比如图中的现象1


   3 一个类的非静态内部类(只要能访问父类的私有变量的都默认引用了父类)由于默认引用了父类,也相当于父类的一部分,因此内部类的成员变量也要符合父类的上述要求,否则导致父类生命无法正常释放
  这类现象比较常见又比较隐蔽
  比如 activity被handler(内部类)持有,handler又被message持有,所以导致message未处理完activity也无法释放的现象。
  再比如 起一个内部类线程,线程没处理完,父类就无法释放。


3 实例总结分类

   监测类(动态内存检测比如抖音的xxx,activity fragment监测比如leakcanery,慢函数,卡顿检测比如腾讯的matrix,启动优化监测等)
   缓存类:LruCache,glide 的三级缓存,recycleview的四级缓存
   
接下来要对这些分类进行进一步了解,目前还没到掌握,只是了解的程度,然后再写下个人总结吧。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是 Docker 容器?以及操作 Docker 容器相关的命令汇总

镜像仓库常用指令:Docker 镜像仓库是什么?有哪些镜像仓库命令? 镜像常用指令:操作 Docker 镜像的常用命令 1. 什么是容器? 容器是镜像的运行实体。容器是基于镜像创建的可运行实例,并且单独存在&#xff0…

打字侠网站,提供免费的双拼打字练习

在当今信息时代,电脑已成为人们生活、学习和工作不可或缺的一部分。随着电脑的普及和广泛应用,打字成了一项必备的技能,尤其是对于从事编程和写作等工作的人来说甚至更为重要。而要想提高打字速度和准确度,良好的打字练习是必不可…

BMS再进阶(新能源汽车电池管理系统)

引言 一文入门BMS(电池管理系统)_bms电池管理-CSDN博客 BMS进阶(Type-C、PD快充、充电IC、SOC算法、电池管理IC)_充电ic asi aso功能-CSDN博客 本文是上面两篇博客的续篇,之前都是讲解一些BMS基本原理,…

算法之贪心

1.部分背包问题 代码1: 代码2: 但如果金币不能分割,那贪心就不是最优解,正确的做法是搜索或动态规划。 2.排队接水 3.在规定时间内参加最多的比赛 4.合并果子 使用memset初始化int数组时,第二个参数如果是0&#xff0…

《合成孔径雷达成像算法与实现》Figure6.18

% rho_r c/(2*Fr)而不是rho_r c/(2*Bw) % Hsrcf exp函数里忘记乘pi了 clc clear close all参数设置 距离向参数设置 R_eta_c 20e3; % 景中心斜距 Tr 2.5e-6; % 发射脉冲时宽 Kr 20e12; % 距离向调频率 alpha_os_r 1.2; …

AJAX——接口文档

1 接口文档 接口文档&#xff1a;描述接口的文章 接口&#xff1a;使用AJAX和服务器通讯时&#xff0c;使用的URL&#xff0c;请求方法&#xff0c;以及参数 传送门&#xff1a;AJAX阶段接口文档 <!DOCTYPE html> <html lang"en"><head><meta c…

Node.js开发-express框架

express框架 1) 介绍2) express 路由3) express 响应设置4) express 其他响应5) express中间件6) 静态资源中间件7) 获取请求体数据 body-parser8) Router 路由模块化9) EJS 模板引擎 1) 介绍 express 是一个基于 Node.js 平台的极简、灵活的 WEB 应用开发框架&#xff0c;官方…

Docker安装nginx和基本配置

Docker安装nginx和基本配置 一、拉取镜像&#xff0c;创建容器二、修改展示页面三、基本配置四、配置反向代理 一、拉取镜像&#xff0c;创建容器 &#x1f340;1、拉取 nginx 镜像 docker pull nginx:1.17.8&#x1f340;2、查看所有镜像 docker images&#x1f340;3、根据…

FL Studio 21.2.3.4004 All Plugins Edition Win/Mac音乐软件

FL Studio 21.2.3.4004 All Plugins Edition 是一款功能强大的音乐制作软件&#xff0c;提供了丰富的音频处理工具和插件&#xff0c;适用于专业音乐制作人和爱好者。该软件具有直观的用户界面&#xff0c;支持多轨道录音、混音和编辑&#xff0c;以及各种音频效果和虚拟乐器。…

2.15学习总结

2.15 1.聪明的质监员&#xff08;二分前缀和&#xff09; 2.村村通&#xff08;并查集&#xff09; 3.玉蟾宫(悬线法DP) 4.随机排列&#xff08;树状数组逆序对问题&#xff09; 5.增进感情&#xff08;DFS&#xff09; 6.医院设置&#xff08;floyd&#xff09; 聪明的质监员…

代码随想录算法训练营29期|day52 任务以及具体安排

第九章 动态规划part09 198.打家劫舍 // 动态规划 class Solution {public int rob(int[] nums) {if (nums null || nums.length 0) return 0;if (nums.length 1) return nums[0];int[] dp new int[nums.length];dp[0] nums[0];dp[1] Math.max(dp[0], nums[1]);for (int …