在进行启动优化之前,我们先介绍一下小程序的启动过程。了解小程序的启动流程,可以帮助开发者更有针对性地选择性能优化的手段,分析性能优化的效果。
本文的启动流程以安卓和 iOS 为准,其他平台可能会略有差异。
小程序启动过程主要包括以下几个环节:
小程序启动的各流程不是串行的,会尽可能的并行。计算耗时不能简单加和。
小程序启动的各流程不是每次启动都完整进行的,会尽可能的利用缓存。
小程序启动时需要从代码包内读取小程序的配置和代码,并注入到 JavaScript 引擎中。在主包代码注入过程中,会触发小程序的 App.onLaunch
和 App.onShow
生命周期。
为了降低小程序代码注入的耗时,我们采用了包括但不限于以下方式:
- Code Caching:在部分平台上,微信客户端会使用 V8 引擎的 Code Caching 技术对代码编译结果进行缓存,降低非首次注入时的编译耗时。
注意:如果代码中使用了 use asm
,会导致 V8 的 Code Caching 失效。
# 对启动耗时的影响
小程序代码的注入耗时直接影响小程序的启动耗时。耗时长短与代码复杂度、同步接口调用和一些复杂的计算有关。如果未启用「按需注入」,耗时还会与启动使用到分包内的页面和自定义组件总数有关。
由于「首页渲染」需要使用逻辑层发送的数据,如果小程序代码注入耗时过长,会延迟「首页渲染」开始的时间。