性能优化的本质-合理利用资源-Android性能优化之道

加量批注

非常具有启发性,优化的手段 要取决于Context 场景 机型,预加载、多线程、缓存 在不通的硬件环境中,要相应增加、减少。

以下观点摘录自 《Android性能优化之道》 作者:赵子健


本质

充分且合理使用设备硬件资源,提高用户体验、增加企业收益

为什么叫合理?

预加载、多线程、缓存,不一定能优化性能。

例如:

  1. 当CPU使用率已经很高了,预加载、多线程 只会雪上加霜,还会导致 劣化效果。(相反,CPU使用率较低就可以)
  2. 当内存占用已经很多了,使用更多的缓存,只会导致系统频繁GC,甚至OOM问题

很多时候,之所以性能优化不佳,是因为制定优化方案时,没有从性能优化本质思考。 只有 充分且合理的使用硬件资源 去制定方案,才能确保 优化方案有效。

硬件资源
  • CPU
    • 中低端机型,CPU性能差,容易过载:降低PCU的消耗合理使用 CPU资源
      • 减少线程、减少和关闭预加载,让更多的CPU资源 分配给 主线程或核心任务。
    • 高端机型,CPU性能好,充分使用CPU资源
  • 内存
    • 针对设备内存大小,设置缓存大小
  • 磁盘
  • 电池
  • 蓝牙等

取得收益

选取真正能体现程序 对用户体验和收益 产生影响的指标

  • 制定指标

    • 速度指标:启动速度、页面打开速度
    • 内存指标:PSS值(内存实际占用物理内存量)、 Java内存使用率、Native 内存占用率
      • PSS改为 OOM率、GC次数等 更能体现对 用户体验和收益影响
      • 例如PSS(实际内存占用量)下降了100MB,是好,还是坏。(可能打开速度变慢,性能体验变差。
    • 稳定性指标:Crash率、OOM率
  • 采集指标

    • 要做到 精确、一致并尽量减少 对性能的消耗
相关推荐
吾AI科技8 小时前
基于Tez引擎的 Hive SQL 性能优化 —— 为什么脚本运行越来越慢
大数据·hive·性能优化·tez
匠云创新1 天前
读完一万段要两分钟:我们把标书读取从 WPS 对象模型搬到了 docx 解析
性能优化·node.js
打工仔折腾 AI1 天前
Changedetection.io 网页变动监控:Docker 部署、通知配置与公网暴露实践
运维·人工智能·后端·python·docker·容器·性能优化
熊猫钓鱼>_>2 天前
普通用户视角的端侧智能体验手记【鸿蒙心迹】
开发语言·人工智能·华为·智能手机·性能优化·ai编程·harmonyos
2601_967987372 天前
Python 教程:默认字典(defaultdict)全维度深度指南
python·性能优化·数据处理·collections·defaultdict
MyBili2 天前
Chrome性能优化实战:让老旧浏览器重获流畅体验
chrome·性能优化·谷歌浏览器·内存管理·浏览器提速·老旧设备优化·卡顿解决
疯华整猫3 天前
删掉 LeakCanary 那天,我用 Trae 自己撸了一套:最难的不是分析堆,是决定什么时候 dump
android·人工智能·性能优化
洞见前行3 天前
你的 Activity 关了,为什么还活着?Android 内存泄漏从发现、定位到线上治理
android·性能优化·leakcanary
新*4 天前
从一段 WebSocket 代码聊开:bytes 不是 zlib、binaryType 决定一切,15MB 大消息的零拷贝优化
javascript·python·websocket·性能优化·blob·zlib·arraybuffer
疯华整猫4 天前
把二十七个 init 从首帧前面搬走:用 Trae 把启动优化钉进 CI
android·性能优化·ai编程