• Android性能优化方法论


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

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

    在这里插入图片描述

    性能优化的本质

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

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

    下面讲一下这两件事情。

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

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

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

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

    1. CPU 资源的使用率高,但并不是过载的状态,并且 cpu 资源主要为当前场景所使用,而不是被全业务所分散消耗。比如我们优化页面打开速度,速度和 cpu 有很大的关系,那么我们首先要确保 cpu 被充分发挥出来了,我们可以使用多线程、页面打开前提前预加载等策略,来发挥手机的 cpu。但是在打开页面的时候,我们要合理的确保 cpu 资源主要被打开页面相关的逻辑所使用,比如组件创建,数据获取,页面渲染等等,至于其他和当前打开页面场景联系较少的逻辑,比如周期任务,监控,或者一些预加载等等都可以关闭或者延迟,以此减少非相关任务对 cpu 的消耗,
    2. 内存资源缓使用充分,并且又能将 OOM 等异常控制在合理范围内。比如我们做内存优化,内存优化并不是越少越好,相反内存占用多可能让程序更快,但是内存占用也不能太高,所以我们可以根据不同档次机型的 OOM
  • 相关阅读:
    高德 几千条数据,点标记Marker转海量标注 LabelMarker
    PYTHON 实现 UNIX/LINUX 性能监视可视化
    prototype属性与__proto__属性的用法及为什么要用这两个属性
    阿里云AnalyticDB基于Flink CDC+Hudi实现多表全增量入湖实践
    Tomcat 源码分析 (Digester类的使用) (十)
    golang小游戏:飞翔的小鸟
    线上接口流量突增,扛不住了
    求职阿里 Java 技术岗位的经历,三轮技术面 +HR 面,面试也不过如此
    使用Python PySNMP模块获取设备指标
    【C刷题】day5
  • 原文地址:https://blog.csdn.net/tyuiof/article/details/128020309