当前位置: 首页 > news >正文

关于内存相关的梳理

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.lryc.cn/news/300687.html

相关文章:

  • 7.JS里表达式,if条件判断,三元运算符,switch语句,断点调试
  • RK3568平台开发系列讲解(存储篇)文件句柄与文件描述符介绍
  • 【C++】类和对象(五)友元、内部类、匿名对象
  • 攻防世界 CTF Web方向 引导模式-难度1 —— 1-10题 wp精讲
  • Docker之MongoDB安装、创建用户及登录认证
  • 紫微斗数双星组合:天机天梁在辰戌
  • N-144基于微信小程序在线订餐系统
  • [UI5 常用控件] 09.IconTabBar,IconTabHeader,TabContainer
  • CCF编程能力等级认证GESP—C++5级—20231209
  • 【论文精读】GPT2
  • 10-k8s中pod的探针
  • 【Langchain Agent研究】SalesGPT项目介绍(二)
  • 《UE5_C++多人TPS完整教程》学习笔记4 ——《P5 局域网连接(LAN Connection)》
  • 【运维测试】移动测试自动化知识总结第1篇:移动端测试介绍(md文档已分享)
  • 高校疫情防控系统的全栈开发实战
  • OpenTitan- 开源安全芯片横空出世
  • 简单的edge浏览器插件开发记录
  • WSL下如何使用Ubuntu本地部署Vits2.3-Extra-v2:中文特化修复版(新手从0开始部署教程)
  • Go语言的100个错误使用场景(40-47)|字符串函数方法
  • Fluke ADPT 连接器新增对福禄克万用 Fluke 15B Max 的支持
  • 前端工程化面试题 | 10.精选前端工程化高频面试题
  • 【并发编程】AQS原理
  • AI:130-基于深度学习的室内导航与定位
  • Leetcode1423.可获得的最大点数
  • 深度学习之梯度下降算法
  • 代码随想录第32天|● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II
  • 线性代数的本质 2 线性组合、张成的空间、基
  • - 工程实践 - 《QPS百万级的有状态服务实践》01 - 存储选型实践
  • SECS/GEM的HSMS通讯?金南瓜方案
  • wayland(xdg_wm_base) + egl + opengles——dma_buf 作为纹理数据源(五)