• Android性能优化方法论


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

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

    在这里插入图片描述

    性能优化的本质

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

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

    下面讲一下这两件事情。

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

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

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

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

    1. CPU 资源的使用率高,但并不是过载的状态,并且 cpu 资源主要为当前场景所使用,而不是被全业务所分散消耗。比如我们优化页面打开速度,速度和 cpu 有很大的关系,那么我们首先要确保 cpu 被充分发挥出来了,我们可以使用多线程、页面打开前提前预加载等策略,来发挥手机的 cpu。但是在打开页面的时候,我们要合理的确保 cpu 资源主要被打开页面相关的逻辑所使用,比如组件创建,数据获取,页面渲染等等,至于其他和当前打开页面场景联系较少的逻辑,比如周期任务,监控,或者一些预加载等等都可以关闭或者延迟,以此减少非相关任务对 cpu 的消耗,
    2. 内存资源缓使用充分,并且又能将 OOM 等异常控制在合理范围内。比如我们做内存优化,内存优化并不是越少越好,相反内存占用多可能让程序更快,但是内存占用也不能太高,所以我们可以根据不同档次机型的 OOM
  • 相关阅读:
    csdn月入过万的作者是如何练成的?
    动态树的第2大值
    Geogebra 教程之 02 Geogebra初学者的 8 个基本要素
    军队文职丨2022年武警部队面向社会公开招聘351名文职人员公告!高中学历可报,11月25日前报名!
    idea打开之前的项目不能正常编译/idea中项目Compile output丢失问题
    热门Java开发工具IDEA入门指南——导出项目到Eclipse
    云计算期末复习(1)
    Window系统搭建feishu-chatgpt企业AI机器人并实现无公网ip远程连接
    【嵌入式面试题】常见的面试题梳理一
    pytorch中unsqueeze用法说明
  • 原文地址:https://blog.csdn.net/tyuiof/article/details/128020309