首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >HarmonyOS 开发实践 —— 点击切换页面完成时延性能优化案例

HarmonyOS 开发实践 —— 点击切换页面完成时延性能优化案例

原创
作者头像
小帅聊鸿蒙
发布于 2024-12-13 20:33:31
发布于 2024-12-13 20:33:31
4810
举报
文章被收录于专栏:鸿蒙开发笔记鸿蒙开发笔记

场景描述

通过性能测试工具测试发现,某应用首页点击某条新闻页面切换完成时延1327ms, 应用内点击操作完成时延推荐值为900ms ,差距400+ms。如果不通过性能测试工具集进行分析,开发者需要:复现问题、抓取trace、分析trace,找出丢帧问题点,操作步骤多,耗时较长。

本场景通过应用体检工具进行问题发现、定位及修改。

目标规则

针对页面转场完成时延的场景,应用体检工具有针对性的体检规则,再结合VIP页面是采用web加载的业务背景,我们选择的目标体检工具检测规则如下:

  • 页面内点击操作完成时延快速检测:应用内点击操作完成时延应≤1600毫秒,这条规则的优势是可以由开发者自行手动操作关注的目标页面,避免工具自动扫描一些开发者不关注的页面浪费时间 。
  • web 组件初始化耗时检测:应用web页面加载场景下,web组件初始化时间不超过25ms 。
  • web 执行 js 耗时检测:应用web页面加载场景下,web页面单个js编译时间不超过30ms,单个js运行时间不超过30ms,总体js执行时间不超过300ms 。
  • web 主资源下载耗时检测:应用web页面加载场景下,web主资源下载时间不超过300ms 。
  • web 子资源下载耗时检测:应用web页面加载场景下,web单个子资源下载时间不超过200ms 。

使用性能检测工具检测性能问题

选择Benchmark,快速性能测试勾选页面内点击操作完成时延快速检测,最佳实践勾选web 组件初始化耗时检测、web 执行 js 耗时检测、web 主资源下载耗时检测、web 子资源下载耗时检测。启动检测后工具会自动拉起应用并在首页停留,接下来由开发者手动操作手机界面来复现点击VIP按钮跳转到VIP界面的场景。

开发者原场景复现结束后,点击结束按钮输出体检报告,报告结果显示在3个检查规则检测不通过:

1. web主资源下载耗时长。

体检报告结果显示,新闻页面的主资源下载耗费了314ms以上,这是第一个重点需要考虑的优化点。

2. web子资源下载耗时长。

体检报告结果显示,新闻页面存在耗时347ms以上的子资源下载,这是第二个重点需要考虑的优化点。

3. js编译耗时长。

体检报告结果显示,新闻页面某js文件编译耗时超过了52ms,是TOP编译耗时,需要重点考虑优化,其它的优先级不高,先不考虑。

从web页面加载的整个流程可以看到,主资源下载,子资源下载,js编译都是加载流程中的环节,对这3个环节的优化能够对整个新闻页面加载完成时延带来性能收益。

优化方案及优化收益

针对主资源下载耗时长和子资源下载耗时长,体检报告提供了预下载、预渲染的优化建议,可以在冷启动或者首页提前下载新闻页面的资源,甚至提前渲染新闻页面,性能收益预期达到数百毫秒 。

针对js编译耗时长,体检报告里提供了预编译JavaScript生成字节码缓存(Code Cache)的优化建议,可以在首页预编译新闻页面使用到的js文件资源,预期可以获得53ms的性能优化收益 。

写在最后

如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:

  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力;
  • 关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识;
  • 想要获取更多完整鸿蒙最新学习知识点,可关注B站:码牛课堂;

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 场景描述
  • 目标规则
  • 写在最后
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档