---
title: 启动性能
summary: "介绍小程序启动性能的基本概念，包括冷启动与热启动的区别、启动耗时定义及优化方向。"
docType: default
questions:
  - 小程序的冷启动和热启动有什么区别？
  - 小程序启动耗时的起点和终点分别是什么？
  - 首次打开小程序的建议启动耗时是多少？
  - 非首次打开小程序使用本地缓存时建议耗时是多少？
  - 小程序启动性能优化主要针对哪种启动场景？
  - 小程序启动流程中开发者可以优化哪些环节？
  - 代码包体积优化的核心目标是什么？
  - 代码注入优化的核心目标是什么？
  - 首屏渲染优化的核心目标是什么？
  - Page.onReady 事件在启动耗时中代表什么含义？
---

# 启动性能

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

## 什么是小程序启动

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

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

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

## 启动耗时的定义

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

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

## 启动耗时建议

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

## 启动优化方向

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

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

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