# @capacitor-firebase/performance 中文文档

规范地址：https://npmcn.com/package/%40capacitor-firebase/performance/

版本：8\.6\.0
npm 元数据更新时间：2026-10-31T07:03:47.115Z
中文译文更新时间：2026-11-09T03:16:44.872Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40capacitor-firebase/performance
原文对照：https://npmcn.com/package/%40capacitor-firebase/performance/?lang=original
项目主页：https://capawesome.io/
源码仓库：https://github.com/capawesome-team/capacitor-firebase

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：136 kB，27 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：firebase ^12\.6\.0，@capacitor/core \>=8\.0\.0
- 首次发布：2022-03-19T21:28:56.362Z
- 最新版本发布：2026-10-31T07:03:46.757Z
- 近 30 天下载量：54691（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：51（近 12 个月 13 个）

## 中文简介

用于Android,iOS,和Web的火地性能监测的电容插件.

## 安装

```sh
npm install @capacitor-firebase/performance
```

也可以使用：`pnpm add @capacitor-firebase/performance`、`yarn add @capacitor-firebase/performance`、`bun add @capacitor-firebase/performance`

## README

# 火基地性能监测插件

非官方电容插件 [基地性能监测](https://firebase.google.com/docs/perf-mon)\[^1\]

[![Ship a fix in one command with Capawesome Cloud Live Updates, no store review](https://capawesome.io/assets/banners/cloud-ship-a-fix-in-one-command.png)](https://capawesome.io/)

## 使用大小写

Firebase性能监控插件通常用于了解您应用的性能特征,例如:

-   **自定义代码跟踪**: 测量应用程序中的具体任务需要多长时间, 如加载数据或处理图像.
-   **自定义衡量标准**:在微量内计数与性能相关的事件,如缓存点击或重试.
-   **业绩分割**: 添加自定义属性到您的痕迹中, 如用户 ID, 以分割您的性能数据 .
-   **遵守隐私**:在运行时间启用或禁用性能监测,例如基于用户的同意.

## 兼容性

| 插件版本 | 电容版本 | 状态 |
| --- | --- | --- |
| 8.x.x (英语) | \>=8.x.x | 积极支持 |
| 7.x.x (中文(简体) ) | 7.x.x (中文(简体) ) | 折旧 |
| 6.x.x (中文(简体) ) | 6.x.x (中文(简体) ) | 折旧 |
| 5.x.x (中文(简体) ) | 5.x.x (中文(简体) ) | 折旧 |
| 1.x.x (中文(简体) ) | 4.x.x (中文(简体) ) | 折旧 |

## 指南

-   [带有火基地的电容控制器中的 App 性能监视器](https://capawesome.io/blog/capacitor-firebase-performance-monitoring-guide/): 自动和自定义跟踪, 用于应用程序的启动、 渲染和网络调用 .
-   [如何在电容App中使用火把](https://capawesome.io/blog/how-to-use-firebase-in-a-capacitor-app/): 整个插件家族在一个向导中,性能监测是应用健康的一半.

## 安装

你可以用我们的 **AI 辅助设置** 以安装插件. 添加数据 [超级技能](https://github.com/capawesome-team/skills) 至您的 AI 工具,使用以下命令:

```bash
npx skills add capawesome-team/skills --skill capacitor-plugins
```

然后使用下列提示:

```
Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capacitor-firebase/performance` plugin in my project.
```

如果你喜欢 **手动设置**,通过运行以下命令来安装插件,并遵循下面的平台特定指令:

```bash
npm install @capacitor-firebase/performance firebase
npx cap sync
```

如果您还没有将 Firebase 添加到您的项目中([机器人](https://github.com/capawesome-team/capacitor-firebase/blob/main/docs/firebase-setup.md#android) 编号 : [iOS系统](https://github.com/capawesome-team/capacitor-firebase/blob/main/docs/firebase-setup.md#ios) 编号 : [网页](https://github.com/capawesome-team/capacitor-firebase/blob/main/docs/firebase-setup.md#web)) (中文(简体) ).

### 机器人

见 [将性能监控插件添加到您的应用程序中](https://firebase.google.com/docs/perf-mon/get-started-android#add-perfmon-plugin) 并遵守指示 正确设置您的应用程序.

#### 变量

如果需要, 您可以在您的应用程序中定义以下工程变量 `variables.gradle` 要更改依赖的默认版本的文件 :

-   `$firebasePerfVersion` 版本 `com.google.firebase:firebase-perf` (默认 : `22.0.4`(中文(简体) )

如果您在工程中遇到其它插件的依赖性冲突, 这会有所帮助 .

### iOS系统

#### Swift 软件包管理器

在您的 `capacitor.config.json` (或 `capacitor.config.ts`) 避免 [SwiftPM 软件包识别相撞](https://github.com/capawesome-team/capacitor-firebase/issues/959)数字 :

```json
{
  "experimental": {
    "ios": {
      "spm": {
        "packageOptions": {
          "@capacitor-firebase/performance": {
            "symlink": true
          }
        }
      }
    }
  }
}
```

**请注意**目标 `packageOptions` 支持需要控制器 CLI **8.4.0+ (中文(简体) )**。 。 。 .

## 配置

此插件不需要配置 .

## 演示

这里有一个实例: [robingenz/电容器-火力基地-插座-demo](https://github.com/robingenz/capacitor-firebase-plugin-demo)

## 使用量

以下例子显示如何开始并停止追踪,记录自定义度量衡,添加自定义属性,切换性能监测,并手动记录一个追踪.

### 开始和停止追踪

启动自定义代码跟踪, 以测量您应用程序中的特定任务需要多长时间, 并在任务完成后立即停止 :

```typescript
import { FirebasePerformance } from '@capacitor-firebase/performance';

const startTrace = async () => {
  await FirebasePerformance.startTrace({ traceName: 'test_trace' });
};

const stopTrace = async () => {
  await FirebasePerformance.stopTrace({ traceName: 'test_trace' });
};
```

### 记录自定义衡量标准

设定一个微量的自定义度量的值, 从原子上递增, 或者读取其当前值 。 注意, 测量值下至最接近的整数 :

```typescript
import { FirebasePerformance } from '@capacitor-firebase/performance';

const putMetric = async () => {
  await FirebasePerformance.putMetric({
    traceName: 'test_trace',
    metricName: 'item_cache_hit',
    num: 1,
  });
};

const incrementMetric = async () => {
  await FirebasePerformance.incrementMetric({
    traceName: 'test_trace',
    metricName: 'item_cache_hit',
    incrementBy: 1,
  });
};

const getMetric = async () => {
  const result = await FirebasePerformance.getMetric({
    traceName: 'test_trace',
    metricName: 'item_cache_hit',
  });
  return result.value;
};
```

### 添加自定义属性到跟踪

将自定义属性设定在一个跟踪上,例如用户ID,以分割您的性能数据。 您也可以再次读取或删除:

```typescript
import { FirebasePerformance } from '@capacitor-firebase/performance';

const putAttribute = async () => {
  await FirebasePerformance.putAttribute({
    traceName: 'test_trace',
    attribute: 'user_id',
    value: '123',
  });
};

const getAttribute = async () => {
  const result = await FirebasePerformance.getAttribute({
    traceName: 'test_trace',
    attribute: 'user_id',
  });
  return result.attributes;
};

const getAttributes = async () => {
  const result = await FirebasePerformance.getAttributes({ traceName: 'test_trace' });
  return result.attributes;
};

const removeAttribute = async () => {
  await FirebasePerformance.removeAttribute({
    traceName: 'test_trace',
    attribute: 'user_id',
  });
};
```

### 启用或禁用性能监测

在运行时启用或禁用性能监测,例如基于用户的同意. 设置随应用程序的下个启动而应用 :

```typescript
import { FirebasePerformance } from '@capacitor-firebase/performance';

const setEnabled = async () => {
  await FirebasePerformance.setEnabled({ enabled: true });
};

const isEnabled = async () => {
  const result = await FirebasePerformance.isEnabled();
  return result.enabled;
};
```

### 手动记录追踪

记录已完成的任务的追踪,提供开始时间和持续时间。 仅在网上提供 :

```typescript
import { FirebasePerformance } from '@capacitor-firebase/performance';

const record = async () => {
  await FirebasePerformance.record({
    traceName: 'test_trace',
    startTime: Date.now(),
    duration: 1000,
    options: {
      metrics: {
        item_cache_hit: 1,
      },
      attributes: {
        user_id: '123',
      },
    },
  });
};
```

## API 密码

-   [`startTrace(...)`](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-starttrace)
-   [`stopTrace(...)`](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-stoptrace)
-   [`incrementMetric(...)`](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-incrementmetric)
-   [`setEnabled(...)`](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-setenabled)
-   [`isEnabled()`](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-isenabled)
-   [`putAttribute(...)`](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-putattribute)
-   [`getAttribute(...)`](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-getattribute)
-   [`getAttributes(...)`](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-getattributes)
-   [`removeAttribute(...)`](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-removeattribute)
-   [`putMetric(...)`](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-putmetric)
-   [`getMetric(...)`](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-getmetric)
-   [`record(...)`](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-record)
-   [接口](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-interfaces)
-   [类型异名](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-type-aliases)

### 启动 Trace (...)

```typescript
startTrace(options: StartTraceOptions) => Promise<void>
```

开始追踪.

| 参数 | 类型 |
| --- | --- |
| **`options`** | `[StartTraceOptions](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-starttraceoptions)` |

**自:** 0.1.0 (中文(简体) )

* * *

### 停止追踪(...)

```typescript
stopTrace(options: StopTraceOptions) => Promise<void>
```

停止追踪.

| 参数 | 类型 |
| --- | --- |
| **`options`** | `[StopTraceOptions](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-stoptraceoptions)` |

**自:** 0.1.0 (中文(简体) )

* * *

### 递增量(...)

```typescript
incrementMetric(options: IncrementMetricOptions) => Promise<void>
```

原子递增度量,以选定微量的给定名称表示 `incrementBy` 数值.

| 参数 | 类型 |
| --- | --- |
| **`options`** | `[IncrementMetricOptions](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-incrementmetricoptions)` |

**自:** 0.1.0 (中文(简体) )

* * *

### 设置可启用(...)

```typescript
setEnabled(options: SetEnabledOptions) => Promise<void>
```

启用或禁用性能监测. 将在应用程序的下一个启动时应用 .

| 参数 | 类型 |
| --- | --- |
| **`options`** | `[SetEnabledOptions](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-setenabledoptions)` |

**自:** 0.1.0 (中文(简体) )

* * *

### 已启用

```typescript
isEnabled() => Promise<IsEnabledResult>
```

确定是否启用或禁用性能监测.

**回返情况:** `Promise<[IsEnabledResult](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-isenabledresult)>`

**自:** 0.1.0 (中文(简体) )

* * *

### 设置属性(...)

```typescript
putAttribute(options: PutAttributeOptions) => Promise<void>
```

设置给定值的自定义属性.

| 参数 | 类型 |
| --- | --- |
| **`options`** | `[PutAttributeOptions](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-putattributeoptions)` |

**自:** 6.3.0 (单位:千美元)

* * *

### 获取属性(...)

```typescript
getAttribute(options: GetAttributeOptions) => Promise<GetAttributeResult>
```

返回一个跟踪的自定义属性的值.

| 参数 | 类型 |
| --- | --- |
| **`options`** | `[GetAttributeOptions](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-getattributeoptions)` |

**回返情况:** `Promise<[GetAttributeResult](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-getattributeresult)>`

**自:** 6.3.0 (单位:千美元)

* * *

### 获取属性(...)

```typescript
getAttributes(options: GetAttributesOptions) => Promise<GetAttributesResult>
```

以它们的值获取一个跟踪的所有自定义属性.

| 参数 | 类型 |
| --- | --- |
| **`options`** | `[GetAttributesOptions](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-getattributesoptions)` |

**回返情况:** `Promise<[GetAttributesResult](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-getattributesresult)>`

**自:** 6.3.0 (单位:千美元)

* * *

### 删除属性(...)

```typescript
removeAttribute(options: RemoveAttributeOptions) => Promise<void>
```

从给定名称的跟踪中删除自定义属性.

| 参数 | 类型 |
| --- | --- |
| **`options`** | `[GetAttributeOptions](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-getattributeoptions)` |

**自:** 6.3.0 (单位:千美元)

* * *

### putMetric (...) 数据

```typescript
putMetric(options: PutMetricOptions) => Promise<void>
```

设置自定义度量衡的值.

| 参数 | 类型 |
| --- | --- |
| **`options`** | `[PutMetricOptions](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-putmetricoptions)` |

**自:** 6.3.0 (单位:千美元)

* * *

### 获取Metric (...)

```typescript
getMetric(options: GetMetricOptions) => Promise<GetMetricResult>
```

按名称获取自定义计量值.

| 参数 | 类型 |
| --- | --- |
| **`options`** | `[GetMetricOptions](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-getmetricoptions)` |

**回返情况:** `Promise<[GetMetricResult](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-getmetricresult)>`

**自:** 6.3.0 (单位:千美元)

* * *

### 记录(...)

```typescript
record(options: RecordOptions) => Promise<void>
```

记录一下它的名字和选择.

仅在网上提供.

| 参数 | 类型 |
| --- | --- |
| **`options`** | `[RecordOptions](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-recordoptions)` |

**自:** 6.3.0 (单位:千美元)

* * *

### 接口

#### 启动跟踪选项

| Prop | 类型 | 说明 | 自兹 |
| --- | --- | --- | --- |
| **`traceName`** | `string` | 自定义踪迹名称 。 自定义代码痕迹的名称必须满足以下要求:没有前导或后导的白空间,没有前导的下划线( )字符,最大长度为100个字符. | 0.1.0 (中文(简体) ) |

#### 停止跟踪选项

| Prop | 类型 | 说明 | 自兹 |
| --- | --- | --- | --- |
| **`traceName`** | `string` | 设定的追踪名称 `startTrace`。 。 。 . | 0.1.0 (中文(简体) ) |

#### 增量计量选项

| Prop | 类型 | 说明 | 默认 | 自兹 |
| --- | --- | --- | --- | --- |
| **`traceName`** | `string` | 设定的追踪名称 `startTrace`。 。 。 . |  | 0.1.0 (中文(简体) ) |
| **`metricName`** | `string` | 要递增的衡量标准名称. |  | 0.1.0 (中文(简体) ) |
| **`incrementBy`** | `number` | 计量标准需要递增的金额. | `1` | 0.1.0 (中文(简体) ) |

#### 设置可选选项

| Prop | 类型 | 说明 | 自兹 |
| --- | --- | --- | --- |
| **`enabled`** | `boolean` | 如能进行业绩监测. | 0.1.0 (中文(简体) ) |

#### 已启用结果

| Prop | 类型 | 说明 | 自兹 |
| --- | --- | --- | --- |
| **`enabled`** | `boolean` | `true` 如果启用了性能监测,否则 `false`。 。 。 . | 0.1.0 (中文(简体) ) |

#### 配置选项

| Prop | 类型 | 说明 | 自兹 |
| --- | --- | --- | --- |
| **`traceName`** | `string` | 确定属性的追踪名称 . | 6.3.0 (单位:千美元) |
| **`attribute`** | `string` | 设置其值的属性名称 . | 6.3.0 (单位:千美元) |
| **`value`** | `string` | 要设置到属性的值 . | 6.3.0 (单位:千美元) |

#### 获取属性结果

| Prop | 类型 | 说明 | 自兹 |
| --- | --- | --- | --- |
| **`value`** | `string | null` | 自定义属性的值 . | 6.3.0 (单位:千美元) |

#### 获取属性选项

| Prop | 类型 | 说明 | 自兹 |
| --- | --- | --- | --- |
| **`traceName`** | `string` | 确定属性的追踪名称 . | 6.3.0 (单位:千美元) |
| **`attribute`** | `string` | 获取其值的属性名称 . | 6.3.0 (单位:千美元) |

#### 获取属性

| Prop | 类型 | 说明 | 自兹 |
| --- | --- | --- | --- |
| **`attributes`** | `{ [key: string]: string; }` | 一张带有其价值的痕量的所有自定义属性的地图. | 6.3.0 (单位:千美元) |

#### 获取属性选项

| Prop | 类型 | 说明 | 自兹 |
| --- | --- | --- | --- |
| **`traceName`** | `string` | 追踪的命名以获得其属性. | 6.3.0 (单位:千美元) |

#### 设置计量选项

| Prop | 类型 | 说明 | 自兹 |
| --- | --- | --- | --- |
| **`traceName`** | `string` | 追踪器的名称来设定其度量. | 6.3.0 (单位:千美元) |
| **`metricName`** | `string` | 度量衡名称. | 6.3.0 (单位:千美元) |
| **`num`** | `number` | 为度量衡设定的值 。 给定值下至最接近的整数. | 6.3.0 (单位:千美元) |

#### 获取医学结果

| Prop | 类型 | 说明 | 自兹 |
| --- | --- | --- | --- |
| **`value`** | `number` | 如果存在衡量标准,则其价值. | 6.3.0 (单位:千美元) |

#### 获得计量选项

| Prop | 类型 | 说明 | 自兹 |
| --- | --- | --- | --- |
| **`traceName`** | `string` | 追踪器的名称来得到它的度量. | 6.3.0 (单位:千美元) |
| **`metricName`** | `string` | 度量衡名称. | 6.3.0 (单位:千美元) |

#### 记录选项

| Prop | 类型 | 说明 | 自兹 |
| --- | --- | --- | --- |
| **`traceName`** | `string` | 追踪记录的名称. | 6.3.0 (单位:千美元) |
| **`startTime`** | `number` | 追踪的开始时间 以毫秒计. | 6.3.0 (单位:千美元) |
| **`duration`** | `number` | 追踪持续时间以毫秒计. | 6.3.0 (单位:千美元) |
| **`options`** | `{ metrics?: { [key: string]: number; }; attributes?: { [key: string]: string; }; }` | 一个可选对象,它持有自定义度量和属性的可选地图. | 6.3.0 (单位:千美元) |

### 类型异名

#### 删除属性选项

`[GetAttributeOptions](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-getattributeoptions)`

## 财务问题

### 我该如何衡量我应用程序中一项具体任务的持续时间?

启动自定义代码跟踪 `startTrace(...)` 在任务开始和停止之前 `stopTrace(...)` 如本报告所示,一旦任务完成,将立即完成 [使用示例](https://npmcn.com/package/%40capacitor-firebase/performance/#readme-start-and-stop-a-trace) 页:1 可以在阻止后用自定义的度量和属性来丰富痕量.

### 对自定义微量名称有何要求?

自定义代码痕迹的名称不得包含正后方或后方的白空间,不得从下划线开始(`_`)),并可能最长有100个字符.

### 度量衡和属性有什么区别?

度量衡是微量的数值,例如缓存点击的计数器,设置在 `putMetric(...)` 或随 `incrementMetric(...)`。请注意,测量值下至最接近的整数。 属性是一个微量的字符串值,例如用户代号,它与 `putAttribute(...)` 并可用于分割您的性能数据.

### 用户能否在运行时禁用性能监控 ?

是的,打电话 `setEnabled(...)` 以启用或禁用性能监测,例如基于用户的同意。 设置随应用程序的下个开始而被应用. 使用 `isEnabled()` 用于确定当前是否启用或禁用性能监测.

### 为什么 `record` 方法不工作 在Android和iOS?

这个 `record(...)` 方法只在网络上提供。 在Android和iOS上,请使用 `startTrace(...)` 财务报告和审定财务报表 `stopTrace(...)` 以衡量任务的持续时间.

## 相关插件

-   [火场分析](https://capawesome.io/docs/sdks/capacitor/firebase/analytics/): 记录带有Firebase分析器的事件和用户属性.
-   [火灾基地崩溃](https://capawesome.io/docs/sdks/capacitor/firebase/crashlytics/):跟踪并分析应用与火地崩盘相撞.

## 通讯

随时更新有关卡帕韦索姆、Capacitor和Ionic生态系统的最新消息和最新消息,因为我们 [《卡帕索克通讯》](https://cloud.capawesome.io/newsletter/)。 。 。 .

## 更改日志

见 [变动情况](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/performance/CHANGELOG.md)。 。 。 .

## 许可证

见 [自由主义](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/performance/LICENSE)。 。 。 .

\[^1\]: 这个项目不附属于Google LLC或其任何子公司或子公司,也不获得其认可、支持、赞助或批准.

## 常见问题

### @capacitor-firebase/performance 是什么？

用于Android,iOS,和Web的火地性能监测的电容插件\.

### 如何安装 @capacitor-firebase/performance？

在项目目录运行 npm install @capacitor-firebase/performance，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@capacitor/core（\>=8\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @capacitor-firebase/performance 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @capacitor-firebase/performance 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @capacitor-firebase/performance 可以商用吗？

@capacitor-firebase/performance 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @capacitor-firebase/performance 的下载量有多少？

根据 npm 官方下载统计，@capacitor-firebase/performance 在 2026/10/09 – 2026/11/07 这 30 天内被下载 54,691 次，日均约 1,823 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @capacitor-firebase/performance 还在维护吗？

最新版本 8\.6\.0 发布于 2026/10/31（9 天前）；至今共发布 51 个版本，其中过去 12 个月发布了 13 个；首次发布于 2022/03/20。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

