• Android性能优化方法论


    作为一名开发,性能优化是永远绕不过去的话题,在日常的开发中,我们可肯定都会接触过。Android 的性能优化其实是非常成熟的了,成熟的套路,成熟的方法论,成熟的开源框架等等。

    对于接触性能优化经验较少的开发者来说,可能很少有机会能去总结或者学到这些成熟的套路,方法论,或者框架。所以作为一位多年长期做性能优化的开发者,在这篇文章中对性能优化的方法论做一些总结,以供大家借鉴。

    在这里插入图片描述

    性能优化的本质

    首先,我先介绍一下性能优化的本质。我对其本质的认知是这样的:性能优化的本质是合理且充分的使用硬件资源,让程序的表现更好,并且程序表现更好的目的则是为了获取更多来自客户的留存,使用时长,口碑、利润等收益。
    所以基于本质来思考,性能优化最重要的两件事情:

    1. 合理且充分的使用硬件资源
    2. 让程序表现更好,并取得收益

    下面讲一下这两件事情。

    合理且充分的使用硬件资源

    充分表示能将硬件的资源充分发挥出来,但充分不一定是合理的,比如我们一下子打了几百个线程,cpu 被充分发挥了,但是并不合理,所以合理表示所发挥出来的硬件资源能给程序表现有正向的作用。

    硬件资源包括:CPU,内存,硬盘,电量,流量(不属于硬件资源,不过也归于需要合理使用的资源之一)等等。

    下面举几个合理且充分的使用硬件资源的例子:

    1. CPU 资源的使用率高,但并不是过载的状态,并且 cpu 资源主要为当前场景所使用,而不是被全业务所分散消耗。比如我们优化页面打开速度,速度和 cpu 有很大的关系,那么我们首先要确保 cpu 被充分发挥出来了,我们可以使用多线程、页面打开前提前预加载等策略,来发挥手机的 cpu。但是在打开页面的时候,我们要合理的确保 cpu 资源主要被打开页面相关的逻辑所使用,比如组件创建,数据获取,页面渲染等等,至于其他和当前打开页面场景联系较少的逻辑,比如周期任务,监控,或者一些预加载等等都可以关闭或者延迟,以此减少非相关任务对 cpu 的消耗,
    2. 内存资源缓使用充分,并且又能将 OOM 等异常控制在合理范围内。比如我们做内存优化,内存优化并不是越少越好,相反内存占用多可能让程序更快,但是内存占用也不能太高,所以我们可以根据不同档次机型的 OOM
  • 相关阅读:
    混淆矩阵——AI产品经理给我使劲看
    Django性能优化
    FFmpeg学习(四)-- libavformat 代码组成
    C/C++实现的MD5哈希校验
    排查Linux服务器是否被入侵步骤
    SpringBoot 封装 HBase 操作工具类
    基于有限时间干扰观测器的多智能体系统的协同控制
    简单的增删改查
    Vue面试专题终结篇:用大数据给50题重排座次,让学习更高效
    编译chromium错误小记
  • 原文地址:https://blog.csdn.net/tyuiof/article/details/128020309