# [Performance](/miniprogram/dev/api/base/performance/Performance) wx.getPerformance()

> 基础库 2.11.0 开始支持，低版本需做[兼容处理](1003706)。

> __小程序插件__：支持
> 
> __微信 Windows 版__：支持
> 
> __微信 Mac 版__：支持
> 
> __微信 鸿蒙 OS 版__：支持

## 功能描述

获取当前小程序性能相关的信息。关于小程序启动性能优化的更多内容，请参考[启动性能指南](/miniprogram/dev/framework/performance/tips/start.md)。

## 返回值

### [Performance](/miniprogram/dev/api/base/performance/Performance)

目前支持获取以下几类性能指标，具体内容请参考 [PerformanceEntry](/miniprogram/dev/api/base/performance/PerformanceEntry)：

| 指标类型（entryType） | 指标名称          | 最低版本 ｜
| ------------------- | ---------------- | ------ |
| 路由（navigation）   | route: 路由性能 | |
| 路由（navigation）   | appLaunch: 小程序启动耗时 | |
| 渲染（render）       | firstRender: 页面首次渲染耗时 | |
| 渲染（render）       | firstPaint: 页面首次绘制 |  |
| 渲染（render）       | firstContentfulPaint: 页面首次内容绘制 |   |
| 渲染（render）       | largestContentfulPaint: 页面最大内容绘制 |  |
| 脚本（script）       | evaluateScript: 注入脚本耗时  | |
| 包加载（loadPackage）| downloadPackage: 代码包下载耗时  |  |
| 资源（resource）     | resourceTiming: 视图层资源加载耗时  |  |

## 示例代码

```js
const performance = wx.getPerformance()
const observer = performance.createObserver((entryList) => {
  console.log(entryList.getEntries())
})
observer.observe({ entryTypes: ['render', 'script', 'navigation'] })
```

## 注意

- 目前，当开启代码 [按需注入](/miniprogram/dev/framework/ability/lazyload.md) 时，`evaluateScript` 将仅包含公有部分代码（2.21.2 开始会区分公共部分/页面和组件的部分），页面和组件的代码注入的时间会包含在 `firstRender` 中（因为页面和组件的代码注入过程成为了首次渲染过程的一部分）。因此开启按需注入后，脚本耗时降低，渲染时间提高属于正常现象，优化效果可以关注整体启动耗时（`appLaunch`）来评估。
- firstPaint 和 firstContentfulPaint 指标在开启 vConsole 的情况下，由于绘制 vConsole 面板，会导致数据提前。
