内存优化
Posted chen-ying
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内存优化相关的知识,希望对你有一定的参考价值。
内存优化
关于内存优化
内存问题很隐蔽,内存问题出现时一个累计的结果。
内存问题:
- 内存抖动:工具显示锯齿状、GC导致卡顿
- 内存泄露:可用内存减少、频繁GC
- 内存溢出:OOM、程序异常
工具选择:
Memory Profiler
实时图表展示应用内存使用量;
识别内存泄露、抖动等;
提供捕获堆转储、强制GC以及跟踪内存分配的能力。
Memory Analyzer
强大的Java Heap分析工具,查找内存泄露以及内存占用。
生成整体报告、分析问题等。
LeakCanary
自动内存泄露检测的一个库。
Android内存管理机制
Java内存管理机制
android的内存管理机制
内存弹性分配,分配值与最大值受具体设备影响。
OOM场景:内存真正不足、可用内存不足。
Dalvik与Art区别
Dalvik仅仅固定一种回收算法;
Art回收算法可以运行期选择,具备内存整理能力,减少内存空洞。
Low Memory Killer
进程分类
回收收益
内存抖动解决
内存抖动就是内存频繁分配和回收导致内存不稳定。表现为频繁GC、内存曲线呈现锯齿状。会导致卡顿、OOM。
内存泄露解决
内存泄露也会表现出内存抖动、可用内存逐渐变少,引起内存不足、GC频繁、OOM。
可以使用Memory Profiler初步观察,通过Memory Analyzer结合代码确认。
理解MAT
ARTHook检测不合理图片
- Bitmap内存模型
- 获取Bitmap占用内存
- ARTHook:挂钩,将额外的代码勾住原有方法,修改执行逻辑。
- Epic:是一个虚拟层面,以Java Method为粒度运行时Hook框架。
线上内存监控
内存优化技巧
以上是关于内存优化的主要内容,如果未能解决你的问题,请参考以下文章
Android 性能优化--内存优化--(内存优化工具内存管理机制内存抖动内存泄漏)
Android 性能优化--内存优化--(内存优化工具内存管理机制内存抖动内存泄漏)