- 提前加载整屏文档:主要用在信息流,提前加载前几个Item的文档,用户点击的时候可以秒开访问 。
- 提前加载首屏图片:主要用在信息流,点击访问文档时,图片的请求同时发出去,在文档解析需要用到图片时,首屏图片已经提前加载到本地了 。
- Link preload:在资源响应头或者主文档头部标记出需要预加载的资源,内核会根据一定规则和优先级去提前加载这些资源,
- Module preload:类似于Link preload,但它是模块级的预加载,除了可以预加载模块的依赖资源,还可以提前编译和解析模块JS 。
- Link prefetch:域名提前寻址 。
- 提前加载接口数据:导航预加载&算法闲时预加载 。
- shouldInterceptRequest拦截:在这里拦截是否有Response缓存,返回返回,缺点是不能做接口同步,
- MtopWVPlugin(ANetBridge)拦截:我们重新实现了一个和MtopWVPlugin一样的JS Plugin扩展,在扩展层做拦截 。
- 鲁班尺:UC鲁班尺是基于Lighthouse来做的,它会分析页面在内核中真实渲染的情况,并给出优化建议 。
- 海鸥实验室:UC海鸥实验室是一个性能分析平台,它可以提供完善的首屏、内存、启动、帧率分析数据 。
- Lighthouse:检测页面性能瓶颈 。
- Timeline:记录页面运行过程的具体细节,用于分析页面出现问题的具体位置 。
- Profile:分析页面内存的使用情况和JS/css执行时间 。一般可以用TImeline定位出大概位置,再用JAVAScript CPU profiler详细分析每个JS函数的耗时 。
- Chrome Trace:记录页面在浏览器内核执行的完整过程,粒度精细到每个函数方法,可以很准确的定位到具体问题 。
1 拿到性能分析数据可以使用UC鲁班尺平台 。它会生成一份性性能报告

文章插图
性能提升80%!详解饿了么H5性能优化秘诀
鲁班尺是基于Lighthouse做的,Lighthouse本地跑的时候,除了可以生成性能报告,还可以生成Chrome Trace文件,便于我们分析 。
当然也可以本地去抓Timeline、Chrome Trace日志 。拿到性能报告后,我们可以大致看看哪些地方比较耗时,资源加载,S耗时等等 。再根据Trace日志去具体分析 。
2 拿到T2日志,分析T2时间线如果对接了UC内核,可以分析T2日志,分析的时候关注几个数据:
- frameCount:最后一次T2的frameCount,表示T2在这一帧计算完成 。我们在Trace界面搜索T2Paint_Event的时候,找到这个frameCount,按下m键,标记T2线 。
- tStart:代表T0开始计算的时间,搜索TStart_Point可以定位到这个点 。
3 分析整体性能分析T2之前的渲染整体渲染情况,比如JS执行较长的部分,加载时间较长的部分 。
4 分析加载性能主要是Doc、接口和各种资源的加载性能 。一般说来加载耗时超过300ms就算非常慢了,主要看资源是否走了离线缓存 。

文章插图
性能提升80%!详解饿了么H5性能优化秘诀
5 分析排版性能主要分析排版出现的内容是否合理,排版的时机是否合理,是否存在大量重排、刷新样式的情况 。

文章插图
性能提升80%!详解饿了么H5性能优化秘诀
6 分析JS性能JS性能主要包含三个方面:
- JS解析编译耗时
- JS对应的业务逻辑
- JS具体函数执行耗时
推荐阅读
- 淘宝店铺好评率如何快速提升 新开的淘宝店铺怎样提高点击率
- vivo|vivo X80跑分出炉:确认搭载天玑9000、12GB内存
- 招聘|下周报名!2022四川省属事业单位招聘近800人,研究生岗占51%
- 淘宝网店怎么才有流量 如何提升网店的流量
- 怎么提升Linux性能,看完这篇文章,彻底掌握"平均负载"
- 美容|有一种瘦叫做女明星!体重80斤的周冬雨,在路人镜头下是真不好看
- 大滇号制茶方法,2015年大滇号春茶之801批四星景迈生态
- 点评2021款天梭绅士系列Gentleman Powermatic 80腕表
- 400W、600W、800W电动车,最快能跑多少码?终于知道哪个更省电了
- 社保缴费基数3800是什么档次?
