内存优化

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 性能优化--内存优化--(内存优化工具内存管理机制内存抖动内存泄漏)

Android 性能优化--内存优化--(内存优化工具内存管理机制内存抖动内存泄漏)

Android内存优化三:内存泄漏检测与监控

Android内存优化五:Bitmap优化

Android 性能优化之内存泄漏检测以及内存优化(下)