# @ohos.arkui.performanceMonitor (性能监测)(系统接口) 提供用户操作场景性能相关指标监测能力,在场景开始和结束时分别调用begin和end接口,即可获得该场景相关性能指标,目前仅包含响应时延、完成时延、丢帧。 > **说明:** > > 从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 > > 本模块接口为系统接口。 ## 导入模块 ```ts import { performanceMonitor } from '@kit.ArkUI'; ``` ## ActionType 用户场景(通常为具有动效的场景)触发模式枚举。 **系统接口:** 此接口为系统接口。 **系统能力:** SystemCapability.ArkUI.ArkUI.Full | 名称 | 值 | 说明 | | -- | -- | -- | | LAST_DOWN | 0 | 用户按压事件触发。 | | LAST_UP | 1 | 用户离手事件触发。 | | FIRST_MOVE | 2 | 用户首次滑动事件触发。 | ## SourceType12+ 用户场景触发源类型枚举。 **系统接口:** 此接口为系统接口。 **系统能力:** SystemCapability.ArkUI.ArkUI.Full | 名称 | 值 | 说明 | | -- | -- | -- | | PERF_TOUCH_EVENT | 0 | 触摸屏事件。 | | PERF_MOUSE_EVENT | 1 | 鼠标事件。 | | PERF_TOUCHPAD_EVENT | 2 | 触摸板事件。 | | PERF_JOYSTICK_EVENT | 3 | 摇杆事件。 | | PERF_KEY_EVENT | 4 | 键盘事件。 | ## performanceMonitor.begin begin(scene: string, startInputType: ActionType, note?: string): void 用于标记用户场景开始,用户场景开始时调用此接口。 **系统接口:** 此接口为系统接口。 **系统能力:** SystemCapability.ArkUI.ArkUI.Full **参数:** | 参数名 | 类型 | 必填 | 说明 | | -- | -- | -- | -- | | scene | string | 是 | 用户场景id。字符串长度无限制,建议控制在255个字符以内,格式推荐字母大写且用下划线连接,例如LAUNCHER_APP_LAUNCH_FROM_ICON。 | | startInputType | [ActionType](#actiontype)| 是 | 用户场景触发模式。 | | note | string| 否 | 用户场景备注信息。字符串长度无限制,建议控制在255个字符以内,可以空缺不填,填写后性能指标上报会携带备注信息,不填无影响。 | **示例:** 用户点击图标启动应用场景动效开始点,由离手事件LAST_UP触发。 ```ts performanceMonitor.begin("LAUNCHER_APP_LAUNCH_FROM_ICON", performanceMonitor.ActionType.LAST_UP, "APP_START_BEGIN"); ``` ## performanceMonitor.end end(scene: string): void 用于标记用户场景结束,用户场景结束时调用此接口。 **系统能力:** SystemCapability.ArkUI.ArkUI.Full **参数:** | 参数名 | 类型 | 必填 | 说明 | | -- | -- | -- | -- | | scene | string | 是 | 用户场景id,与begin配对严格保持一致,否则本次场景监测无效。 | **示例:** 用户点击图标启动应用场景动效结束点。 ```ts performanceMonitor.end("LAUNCHER_APP_LAUNCH_FROM_ICON"); ``` ## performanceMonitor.recordInputEventTime12+ recordInputEventTime(type: ActionType, sourceType: SourceType, time: number): void 记录动效场景开始前,用户输入触发事件类型与时间。 **系统能力:** SystemCapability.ArkUI.ArkUI.Full **参数:** | 参数名 | 类型 | 必填 | 说明 | | -- | -- | -- | -- | | type | [ActionType](#actiontype)| 是 | 用户场景触发模式。 | | sourceType | [SourceType](#sourcetype12) | 是 | 用户场景触发源。 | | time | number | 是 | 场景触发时间(ms),时间戳,例如1751508570794。若传零或负值将自动转化为当前系统时间,若传正值则正常使用。不正确的传参会导致用户操作响应时延指标异常。 | **示例:** ```ts import { systemDateTime, BusinessError } from '@kit.BasicServicesKit'; import { performanceMonitor } from '@kit.ArkUI'; // 获取当前系统时间 let time = systemDateTime.getTime(false); // 更新用户触发事件类型与时间 performanceMonitor.recordInputEventTime(performanceMonitor.ActionType.LAST_UP, performanceMonitor.SourceType.PERF_MOUSE_EVENT, time); ```