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```