性能优化的本质-合理利用资源-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率
  • 采集指标

    • 要做到 精确、一致并尽量减少 对性能的消耗
相关推荐
CopyCode2 小时前
我排查了一下午,发现项目打包体积翻倍的元凶是它
前端·性能优化
the3clipse3 小时前
视频编码技术如何赋能游戏性能优化:从硬件隔离到AI驱动的带宽革命
游戏·性能优化·音视频·视频编码·硬件加速·ai编码·自适应编码
余槐i3 小时前
将AI Agent嵌入现有Java系统时,Spring Boot 3.2的异步冲突与内存泄漏排查
人工智能·spring boot·性能优化·kubernetes·ai agent
艺杯羹4 小时前
240GB流量击穿与频繁OOM:从云端瘫痪到客户端自治的本地优先架构重构实录
性能优化·系统架构·fastapi·桌面客户端·本地优先
天天喝旺仔5 小时前
浏览器渲染原理:从解析 HTML/CSS、构建渲染树到重排重绘与首屏优化
前端·javascript·css·性能优化·html
余槐i6 小时前
-m 2g 反而更早 OOM:Docker 内存计数与宿主机空闲口径差异
java·linux·docker·性能优化·cgroup
打工仔折腾 AI7 小时前
网易UU远程实测:手机控电脑做Python开发和Agent调试的真实体验
人工智能·后端·python·智能手机·性能优化·电脑·ai agent 实战
李游Leo7 小时前
《HarmonyOS 7 ArkGraphics 3D 空间设计开发实战》07:复杂3D场景的帧率、内存与资源性能优化【鸿蒙心迹】
android·3d·性能优化·harmonyos
福兮说16 小时前
前端下载大文件,点了按钮半天没反应:fetch + blob 的三个问题和三种替代写法
前端·javascript·性能优化·文件下载