启动性能

小程序启动是小程序用户体验中极为重要的一环,启动耗时过长会造成小程序用户流失,影响用户体验。

注解

本章节的「启动」特指小程序冷启动,不包括小程序后台切前台的热启动。关于冷/热启动的定义,请参考小程序运行机制

  1. 小程序启动的定义

    小程序的启动过程以「用户打开小程序」为起点,到小程序「首页渲染完成」为止。

    「用户打开小程序」可能是由用户点击访问触发,也可能通过扫码、小程序跳小程序或 APP 打开小程序等入口触发。 从扫码、APP 等场景打开小程序时,可能会有前置的跳转和校验流程,不包含在小程序启动流程的讨论范围之内。

    小程序「首页渲染完成」的标志是首个页面 Page.onReady 事件触发。 由于启动流程的差异,小程序定义的「首页渲染完成」不等同于浏览器的 DOMContentLoaded 或 load 事件。

    要了解小程序启动的具体流程,请参考《小程序启动流程》章节的介绍。

  2. 打开率/到达率

    小程序「首页渲染完成」次数与「小程序启动」次数的比值也被称为(PV)打开率或(PV)到达率。与之对应的 流失率 = 1 - 打开率。

    打开率受到下列因素影响:

    • 启动性能:启动耗时越长,白屏时间越久,用户越可能因为失去耐心而退出小程序,打开率也会越低;

    • 用户等待意愿:用户等待意愿越强,等待时间也会更久,在启动耗时一致的情况下,打开率也会越高。用户等待意愿与使用小程序的场景有关,例如:

      • 扫码、搜索等用户目的性较强的场景,通常等待意愿也更强;

      • 广告类的场景下,用户等待意愿较低,要获得较高的打开率,启动性能优化会更加有必要。

  3. 启动性能优化

    在小程序启动流程中,代码包准备、小程序代码注入和首页渲染的耗时是与小程序本身相关的,开发者可以进行一定的优化工作。 其他部分的耗时由小程序框架侧负责进行持续的优化。

    开发者可以从以下方面着手进行启动性能的优化:

    • 代码包体积优化

    • 代码注入优化

    • 页面渲染优化

    如果希望能更好的了解和分析小程序性能状况,可以参考《性能数据》章节。

平均来说,我们建议小程序启动耗时应控制在:

安卓

iOS

需要下载或更新时

3.8s

2.0s

使用本地代码包时

2.8s

1.0s

大盘平均

3.2s

1.4s