---
title: 启动性能
summary: "启动性能优化总览，介绍冷启动与热启动的区别以及启动耗时优化方向。"
docType: default
tags: [启动性能总览, 冷启动流程, 启动阶段划分]
questions:
  - 小程序的冷启动和热启动有什么区别？
  - 小程序启动耗时是如何定义的？
  - 首次打开和非首次打开的建议启动耗时分别是多少？
  - 小程序启动性能优化有哪些主要方向？
  - 启动流程中哪些环节是开发者可以优化的？
---

# 启动性能

小程序启动是用户体验中极为重要的一环。启动耗时过长会导致用户流失，影响小程序的留存率。

## 什么是小程序启动

小程序的启动分为两种类型：

| 类型 | 定义 | 特征 |
| ---- | ---- | ---- |
| **冷启动** | 小程序首次打开，或被系统销毁后重新打开 | 需要经历完整的启动流程，耗时较长 |
| **热启动** | 小程序已在后台运行，用户切回前台 | 无需重新加载，几乎无感知 |

本章节讨论的启动性能优化主要针对**冷启动**场景。

## 启动耗时的定义

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

- **起点**：用户点击小程序入口
- **终点**：首个页面的 `Page.onReady` 事件触发

## 启动耗时建议

| 场景 | 建议耗时 |
| ---- | -------- |
| 首次打开（含下载） | < 3000ms |
| 非首次打开（使用本地缓存） | < 1500ms |

## 启动优化方向

小程序启动流程中，以下环节与小程序本身相关，开发者可以进行优化：

| 优化方向 | 核心目标 | 详细文档 |
| -------- | -------- | -------- |
| 代码包体积优化 | 减小下载体积，加快下载速度 | [代码包体积优化](/cn/miniapp/develop/ray/guide/optimization/startup/package-size) |
| 代码注入优化 | 减少代码执行时间 | [代码注入优化](/cn/miniapp/develop/ray/guide/optimization/startup/code-injection) |
| 首屏渲染优化 | 加快页面内容展示 | [首屏渲染优化](/cn/miniapp/develop/ray/guide/optimization/startup/first-render) |

要了解完整的启动流程细节，请参考 [启动流程介绍](/cn/miniapp/develop/ray/guide/optimization/startup/launch-process)。
