• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.arkui.performanceMonitor (性能监测)(系统接口)
2
3提供用户操作场景性能相关指标监测能力,在场景开始和结束时分别调用begin和end接口,即可获得该场景相关性能指标,目前仅包含响应时延、完成时延、丢帧。
4
5> **说明:**
6>
7> 从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8>
9> 本模块接口为系统接口。
10
11
12## 导入模块
13
14```ts
15import { performanceMonitor } from '@kit.ArkUI';
16```
17
18
19## ActionType
20
21用户场景(通常为具有动效的场景)触发模式枚举。
22
23**系统接口:** 此接口为系统接口。
24
25**系统能力:** SystemCapability.ArkUI.ArkUI.Full
26
27| 名称 | 值 | 说明 |
28| -- | -- | -- |
29| LAST_DOWN | 0 | 用户按压事件触发。  |
30| LAST_UP | 1 | 用户离手事件触发。 |
31| FIRST_MOVE | 2 | 用户首次滑动事件触发。 |
32
33
34## SourceType<sup>12+</sup>
35
36用户场景触发源类型枚举。
37
38**系统接口:** 此接口为系统接口。
39
40**系统能力:** SystemCapability.ArkUI.ArkUI.Full
41
42| 名称 | 值 | 说明 |
43| -- | -- | -- |
44| PERF_TOUCH_EVENT | 0 | 触摸屏事件。 |
45| PERF_MOUSE_EVENT | 1 | 鼠标事件。 |
46| PERF_TOUCHPAD_EVENT | 2 | 触摸板事件。 |
47| PERF_JOYSTICK_EVENT | 3 | 摇杆事件。 |
48| PERF_KEY_EVENT | 4 | 键盘事件。 |
49
50
51## performanceMonitor.begin
52
53begin(scene: string, startInputType: ActionType, note?: string): void
54
55用于标记用户场景开始,用户场景开始时调用此接口。
56
57**系统接口:** 此接口为系统接口。
58
59**系统能力:** SystemCapability.ArkUI.ArkUI.Full
60
61**参数:**
62
63| 参数名 | 类型 | 必填 | 说明 |
64| -- | -- | -- | -- |
65| scene | string | 是 | 用户场景id。字符串长度无限制,建议控制在255个字符以内,格式推荐字母大写且用下划线连接,例如LAUNCHER_APP_LAUNCH_FROM_ICON。 |
66| startInputType | [ActionType](#actiontype)| 是 | 用户场景触发模式。 |
67| note | string| 否 | 用户场景备注信息。字符串长度无限制,建议控制在255个字符以内,可以空缺不填,填写后性能指标上报会携带备注信息,不填无影响。 |
68
69**示例:**
70
71用户点击图标启动应用场景动效开始点,由离手事件LAST_UP触发。
72  ```ts
73performanceMonitor.begin("LAUNCHER_APP_LAUNCH_FROM_ICON", performanceMonitor.ActionType.LAST_UP, "APP_START_BEGIN");
74  ```
75
76
77## performanceMonitor.end
78
79end(scene: string): void
80
81用于标记用户场景结束,用户场景结束时调用此接口。
82
83**系统能力:** SystemCapability.ArkUI.ArkUI.Full
84
85**参数:**
86| 参数名 | 类型 | 必填 | 说明 |
87| -- | -- | -- | -- |
88| scene | string | 是 | 用户场景id,与begin配对严格保持一致,否则本次场景监测无效。 |
89
90**示例:**
91
92用户点击图标启动应用场景动效结束点。
93  ```ts
94performanceMonitor.end("LAUNCHER_APP_LAUNCH_FROM_ICON");
95  ```
96
97## performanceMonitor.recordInputEventTime<sup>12+</sup>
98
99recordInputEventTime(type: ActionType, sourceType: SourceType, time: number): void
100
101记录动效场景开始前,用户输入触发事件类型与时间。
102
103**系统能力:** SystemCapability.ArkUI.ArkUI.Full
104
105**参数:**
106| 参数名 | 类型 | 必填 | 说明 |
107| -- | -- | -- | -- |
108| type | [ActionType](#actiontype)| 是 | 用户场景触发模式。 |
109| sourceType | [SourceType](#sourcetype12) | 是 | 用户场景触发源。 |
110| time | number | 是 | 场景触发时间(ms),时间戳,例如1751508570794。若传零或负值将自动转化为当前系统时间,若传正值则正常使用。不正确的传参会导致用户操作响应时延指标异常。 |
111
112**示例:**
113
114```ts
115import { systemDateTime, BusinessError } from '@kit.BasicServicesKit';
116import { performanceMonitor } from '@kit.ArkUI';
117
118// 获取当前系统时间
119let time = systemDateTime.getTime(false);
120// 更新用户触发事件类型与时间
121performanceMonitor.recordInputEventTime(performanceMonitor.ActionType.LAST_UP, performanceMonitor.SourceType.PERF_MOUSE_EVENT, time);
122```