在进行启动优化之前,我们先介绍一下小程序的启动过程。了解小程序的启动流程,可以帮助开发者更有针对性地选择性能优化的手段,分析性能优化的效果。
本文的启动流程以安卓和 iOS 为准,其他平台可能会略有差异。
小程序启动过程主要包括以下几个环节:
小程序启动的各流程不是串行的,会尽可能的并行。计算耗时不能简单加和。
小程序启动的各流程不是每次启动都完整进行的,会尽可能的利用缓存。
(1) 为什么「开发版」和「体验版」小程序启动比「正式版」慢一些?
「开发版」和「体验版」小程序的启动流程和代码包下载链路会和「正式版」有所差别,也会有更严格的权限控制,因此启动耗时要慢于「正式版」小程序。
对于「开发版」小程序,为了方便开发调试,基础库会启用很多调试相关的能力,例如 vConsole、sourceMap 等,日志输出的等级也会更低,因此启动耗时和页面切换耗时也会有一定延长。
(2) 为什么安卓和 iOS 的启动耗时差异那么大?
两个平台的设备性能、系统功能和启动流程实现存在一定差异:
- iOS 设备的平均性能要好于安卓;
- iOS 小程序和微信共用进程,而 Android 上小程序运行在独立进程,需要额外的进程创建和一些基础模块的初始化流程;
- iOS 上需要使用系统提供的 WebView 和 JavaScript Core,初始化开销几乎可以忽略;
- 安卓 UI 和系统组件的创建的开销远高于 iOS。