已合并
hidebug 补充 ProfilerOptions 扩展配置 API(26.1.0) #3819
王俊龙创建于 12 天前
hidebug 补充 ProfilerOptions 扩展配置 API(26.1.0) #3819
已合并
共 2 个文件变更+167-5
| @@ -442,6 +442,143 @@ void OH_HiDebug_PopAsyncContext(uint64_t ctx); | |||
| 442 | * @since 26.0.0 | 442 | * @since 26.0.0 |
| 443 | */ | 443 | */ |
| 444 | void OH_HiDebug_ReleaseAsyncContext(uint64_t ctx); | 444 | void OH_HiDebug_ReleaseAsyncContext(uint64_t ctx); |
| 445 | + | ||
| 446 | +/** | ||
| 447 | + * @brief 资源采集配置结构体前向声明。 | ||
| 448 | + * @since 26.1.0 | ||
| 449 | + */ | ||
| 450 | +typedef struct OH_HiDebug_ProfilerOptions OH_HiDebug_ProfilerOptions; | ||
| 451 | + | ||
| 452 | +/** | ||
| 453 | + * @brief 创建资源Profiler配置对象。 | ||
| 454 | + * @return 指向OH_HiDebug_ProfilerOptions结构体的指针,当创建失败时返回NULL。 | ||
| 455 | + * @since 26.1.0 | ||
| 456 | + */ | ||
| 457 | +OH_HiDebug_ProfilerOptions* OH_HiDebug_CreateProfilerOptions(void); | ||
| 458 | + | ||
| 459 | +/** | ||
| 460 | + * @brief 释放通过{@link OH_HiDebug_CreateProfilerOptions}创建的配置对象。 | ||
| 461 | + * @param opts 指向OH_HiDebug_ProfilerOptions结构体的指针,不能为NULL。 | ||
J | |||
| 462 | + * @return 返回结果码:\n | ||
| 463 | + * HIDEBUG_SUCCESS:操作成功。\n | ||
| 464 | + * HIDEBUG_RES_PROF_INVALID_ARG:opts为空指针。 | ||
| 465 | + * @since 26.1.0 | ||
| 466 | + */ | ||
| 467 | +HiDebug_ErrorCode OH_HiDebug_DestroyProfilerOptions(OH_HiDebug_ProfilerOptions* opts); | ||
| 468 | + | ||
| 469 | +/** | ||
| 470 | + * @brief 设置异步调用的最大嵌套深度(也称为最大嵌套层数)。 | ||
| 471 | + * @param opts 指向OH_HiDebug_ProfilerOptions结构体的指针,不能为NULL。 | ||
| 472 | + * @param depth 允许的最大异步嵌套深度,取值范围为[1, 16]。 | ||
| 473 | + * @return 返回结果码:\n | ||
| 474 | + * HIDEBUG_SUCCESS:操作成功。\n | ||
| 475 | + * HIDEBUG_RES_PROF_INVALID_ARG:opts为空指针。\n | ||
| 476 | + * HIDEBUG_RES_PROF_INVALID_MAX_ASYNC_NESTING_DEPTH:异步嵌套深度参数无效。 | ||
| 477 | + * @since 26.1.0 | ||
| 478 | + */ | ||
| 479 | +HiDebug_ErrorCode OH_HiDebug_SetMaxAsyncNestingDepth(OH_HiDebug_ProfilerOptions* opts, uint32_t depth); | ||
| 480 | + | ||
| 481 | +/** | ||
| 482 | + * @brief 设置异步任务函数的最大回栈深度。 | ||
| 483 | + * @param opts 指向OH_HiDebug_ProfilerOptions结构体的指针,不能为NULL。 | ||
| 484 | + * @param depth 最大异步任务回栈深度,取值范围为[1, 256]。 | ||
| 485 | + * @return 返回结果码:\n | ||
| 486 | + * HIDEBUG_SUCCESS:操作成功。\n | ||
| 487 | + * HIDEBUG_RES_PROF_INVALID_ARG:opts为空指针。\n | ||
| 488 | + * HIDEBUG_RES_PROF_INVALID_MAX_ASYNC_TASK_STACK_DEPTH:资源采集异步任务回栈深度参数无效。 | ||
| 489 | + * @since 26.1.0 | ||
| 490 | + */ | ||
| 491 | +HiDebug_ErrorCode OH_HiDebug_SetMaxAsyncTaskStackDepth(OH_HiDebug_ProfilerOptions* opts, uint32_t depth); | ||
| 492 | + | ||
| 493 | +/** | ||
| 494 | + * @brief 设置采样间隔,单位为Byte。 | ||
| 495 | + * @param opts 指向OH_HiDebug_ProfilerOptions结构体的指针,不能为NULL。 | ||
| 496 | + * @param bytes 采样间隔,取值范围为[384, 4294967295],单位为Byte。 | ||
| 497 | + * @return 返回结果码:\n | ||
| 498 | + * HIDEBUG_SUCCESS:操作成功。\n | ||
| 499 | + * HIDEBUG_RES_PROF_INVALID_ARG:opts为空指针。\n | ||
| 500 | + * HIDEBUG_RES_PROF_INVALID_SAMPLE_INTERVAL:采样间隔参数无效。 | ||
| 501 | + * @since 26.1.0 | ||
| 502 | + */ | ||
| 503 | +HiDebug_ErrorCode OH_HiDebug_SetSampleIntervalBytes(OH_HiDebug_ProfilerOptions* opts, uint32_t bytes); | ||
| 504 | + | ||
| 505 | +/** | ||
| 506 | + * @brief 设置统计间隔,单位为s。 | ||
| 507 | + * @param opts 指向OH_HiDebug_ProfilerOptions结构体的指针,不能为NULL。 | ||
| 508 | + * @param seconds 统计间隔,取值范围为[1, 3600],单位为s。 | ||
| 509 | + * @return 返回结果码:\n | ||
| 510 | + * HIDEBUG_SUCCESS:操作成功。\n | ||
| 511 | + * HIDEBUG_RES_PROF_INVALID_ARG:opts为空指针。\n | ||
| 512 | + * HIDEBUG_RES_PROF_INVALID_STATISTICS_INTERVAL:统计间隔参数无效。 | ||
| 513 | + * @since 26.1.0 | ||
| 514 | + */ | ||
| 515 | +HiDebug_ErrorCode OH_HiDebug_SetStatisticsIntervalSec(OH_HiDebug_ProfilerOptions* opts, uint32_t seconds); | ||
| 516 | + | ||
| 517 | +/** | ||
| 518 | + * @brief 设置最大回栈深度。 | ||
这个意思是设置同步的?建议写一下,好和上边的做区分。 ![]() ![]() | |||
| 519 | + * @param opts 指向OH_HiDebug_ProfilerOptions结构体的指针,不能为NULL。 | ||
| 520 | + * @param depth 最大回栈深度,取值范围为[1, 30]。 | ||
| 521 | + * @return 返回结果码:\n | ||
| 522 | + * HIDEBUG_SUCCESS:操作成功。\n | ||
| 523 | + * HIDEBUG_RES_PROF_INVALID_ARG:opts为空指针。\n | ||
| 524 | + * HIDEBUG_RES_PROF_INVALID_MAX_STACK_DEPTH:最大回栈深度参数无效。 | ||
| 525 | + * @since 26.1.0 | ||
| 526 | + */ | ||
| 527 | +HiDebug_ErrorCode OH_HiDebug_SetMaxStackDepth(OH_HiDebug_ProfilerOptions* opts, uint32_t depth); | ||
| 528 | + | ||
| 529 | +/** | ||
| 530 | + * @brief 设置内存分配过滤大小。 | ||
| 531 | + * @param opts 指向OH_HiDebug_ProfilerOptions结构体的指针,不能为NULL。 | ||
| 532 | + * @param size 过滤大小阈值,取值范围为[1, 4294967295],单位为Byte。 | ||
| 533 | + * @return 返回结果码:\n | ||
| 534 | + * HIDEBUG_SUCCESS:操作成功。\n | ||
| 535 | + * HIDEBUG_RES_PROF_INVALID_ARG:opts为空指针。\n | ||
| 536 | + * HIDEBUG_RES_PROF_INVALID_FILTER_SIZE:过滤大小参数无效。 | ||
| 537 | + * @since 26.1.0 | ||
| 538 | + */ | ||
| 539 | +HiDebug_ErrorCode OH_HiDebug_SetFilterSize(OH_HiDebug_ProfilerOptions* opts, uint32_t size); | ||
| 540 | + | ||
| 541 | +/** | ||
| 542 | + * @brief 设置最大采集时长,单位为s。 | ||
| 543 | + * @param opts 指向OH_HiDebug_ProfilerOptions结构体的指针,不能为NULL。 | ||
| 544 | + * @param seconds 最大采集时长,取值范围[1, 3600],单位为s。 | ||
| 545 | + * @return 返回结果码:\n | ||
| 546 | + * HIDEBUG_SUCCESS:操作成功。\n | ||
| 547 | + * HIDEBUG_RES_PROF_INVALID_ARG:opts为空指针。\n | ||
| 548 | + * HIDEBUG_RES_PROF_INVALID_MAX_DURATION:最大持续采集时间参数无效。 | ||
| 549 | + * @since 26.1.0 | ||
| 550 | + */ | ||
| 551 | +HiDebug_ErrorCode OH_HiDebug_SetMaxDurationSec(OH_HiDebug_ProfilerOptions* opts, uint32_t seconds); | ||
| 552 | + | ||
| 553 | +/** | ||
| 554 | + * @brief 按指定资源类型和配置开启当前进程资源分配栈信息采集功能。 | ||
| 555 | + * @param type 资源采集类型(OH_HiDebug_ResourceType)。 | ||
J 问题类型:🟡建议修改 问题描述:参数描述中使用中文括号 规范依据:QA-003(参数描述规范)、CE-007(链接格式) 修复建议:修改为"* @param type 资源采集类型,参考{@link OH_HiDebug_ResourceType}。" ![]() ![]() | |||
| 556 | + * @param opts 指向已配置的OH_HiDebug_ProfilerOptions结构体的指针,不能为NULL。 | ||
J 问题类型:🟡建议修改 问题描述: 规范依据:QA-003(参数描述规范)、CE-007(链接格式) 修复建议:
![]() ![]() | |||
| 557 | + * @param callback 接收采集结果的回调函数。 | ||
| 558 | + * @return 返回结果码:\n | ||
| 559 | + * HIDEBUG_RES_PROF_SUCCESS:启动资源采集成功。\n | ||
| 560 | + * HIDEBUG_RES_PROF_INVALID_ARG:opts或callback为空指针。\n | ||
| 561 | + * HIDEBUG_RES_PROF_INVALID_MAX_DURATION:最大持续采集时间参数无效。\n | ||
| 562 | + * HIDEBUG_RES_PROF_INVALID_FILTER_SIZE:过滤大小参数无效。\n | ||
| 563 | + * HIDEBUG_RES_PROF_INVALID_MAX_STACK_DEPTH:最大回栈深度参数无效。\n | ||
| 564 | + * HIDEBUG_RES_PROF_INVALID_STATISTICS_INTERVAL:统计间隔参数无效。\n | ||
| 565 | + * HIDEBUG_RES_PROF_INVALID_SAMPLE_INTERVAL:采样间隔参数无效。\n | ||
| 566 | + * HIDEBUG_RES_PROF_INVALID_MAX_ASYNC_NESTING_DEPTH:异步嵌套深度参数无效。\n | ||
| 567 | + * HIDEBUG_RES_PROF_INVALID_MAX_ASYNC_TASK_STACK_DEPTH:资源采集异步任务回栈深度参数无效。\n | ||
| 568 | + * HIDEBUG_RES_PROF_INVALID_RESOURCE_TYPE:资源采集类型参数无效。\n | ||
| 569 | + * HIDEBUG_RES_PROF_PERMISSION_DENIED:资源采集权限不足。\n | ||
| 570 | + * HIDEBUG_RES_PROF_ALREADY_STARTED:资源采集重复启动。\n | ||
| 571 | + * HIDEBUG_RES_PROF_PROCESS_OVERLIMIT:资源采集进程数超出限制。\n | ||
| 572 | + * HIDEBUG_RES_PROF_CONFLICT:资源采集与命令行工具或系统采集任务冲突。\n | ||
| 573 | + * HIDEBUG_RES_PROF_DAILY_QUOTA_EXCEEDED:资源采集每日配额超出限制。\n | ||
| 574 | + * HIDEBUG_RES_PROF_CPU_OVERLOADED:系统CPU处于高负载状态。\n | ||
| 575 | + * HIDEBUG_RES_PROF_MEM_PRESSURE_CRITICAL:内存可用空间紧张。\n | ||
| 576 | + * HIDEBUG_RES_PROF_STORAGE_PRESSURE_CRITICAL:存储可用空间紧张。\n | ||
| 577 | + * HIDEBUG_RES_PROF_FAILURE:启动资源采集失败。 | ||
| 578 | + * @since 26.1.0 | ||
| 579 | + */ | ||
| 580 | +HiDebug_ErrorCode OH_HiDebug_StartProfilerWithOptions(OH_HiDebug_ResourceType type, | ||
| 581 | + OH_HiDebug_ProfilerOptions* opts, OH_HiDebug_ProfilingCallback callback); | ||
| 445 | 582 | ||
| 446 | } | 583 | } |
| 447 | 584 | ||
| @@ -146,7 +146,7 @@ typedef enum HiDebug_ErrorCode { | |||
| 146 | */ | 146 | */ |
| 147 | HIDEBUG_RES_PROF_NOT_STARTED = 11400422, | 147 | HIDEBUG_RES_PROF_NOT_STARTED = 11400422, |
| 148 | /** | 148 | /** |
| 149 | - * @brief 资源采集进程数超出4个限制。 | 149 | + * @brief 资源采集并行进程数超出限制,整机最多4个不同应用并行采集,应用内最多2个进程并行采集。 |
| 150 | * @since 24 | 150 | * @since 24 |
| 151 | */ | 151 | */ |
| 152 | HIDEBUG_RES_PROF_PROCESS_OVERLIMIT = 11400423, | 152 | HIDEBUG_RES_PROF_PROCESS_OVERLIMIT = 11400423, |
| @@ -161,22 +161,22 @@ typedef enum HiDebug_ErrorCode { | |||
| 161 | */ | 161 | */ |
| 162 | HIDEBUG_RES_PROF_AUTO_STOPPED_BY_DURATION = 11400425, | 162 | HIDEBUG_RES_PROF_AUTO_STOPPED_BY_DURATION = 11400425, |
| 163 | /** | 163 | /** |
| 164 | - * @brief 资源采集每日配额超出10次限制。 | 164 | + * @brief 资源采集每日配额超出限制,整机每日最多4次,应用每日最多2次。 |
J 规格出现非兼容变更 有相关TMG会议纪要吗? ![]() ![]() | |||
| 165 | * @since 24 | 165 | * @since 24 |
| 166 | */ | 166 | */ |
| 167 | HIDEBUG_RES_PROF_DAILY_QUOTA_EXCEEDED = 11400426, | 167 | HIDEBUG_RES_PROF_DAILY_QUOTA_EXCEEDED = 11400426, |
| 168 | /** | 168 | /** |
| 169 | - * @brief 系统CPU处于高负载状态,CPU占用率超过70%。 | 169 | + * @brief 整机系统CPU占用率超过70%。 |
| 170 | * @since 24 | 170 | * @since 24 |
| 171 | */ | 171 | */ |
| 172 | HIDEBUG_RES_PROF_CPU_OVERLOADED = 11400427, | 172 | HIDEBUG_RES_PROF_CPU_OVERLOADED = 11400427, |
| 173 | /** | 173 | /** |
| 174 | - * @brief 内存可用空间紧张,可用空间少于15%。 | 174 | + * @brief 整机系统可用内存低于2GB。 |
| 175 | * @since 24 | 175 | * @since 24 |
| 176 | */ | 176 | */ |
| 177 | HIDEBUG_RES_PROF_MEM_PRESSURE_CRITICAL = 11400428, | 177 | HIDEBUG_RES_PROF_MEM_PRESSURE_CRITICAL = 11400428, |
| 178 | /** | 178 | /** |
| 179 | - * @brief 存储可用空间紧张,可用空间少于15%。 | 179 | + * @brief 整机系统可用存储空间低于存储阈值,阈值为总存储容量的3%与15GB中的较大值。 |
| 180 | * @since 24 | 180 | * @since 24 |
| 181 | */ | 181 | */ |
| 182 | HIDEBUG_RES_PROF_STORAGE_PRESSURE_CRITICAL = 11400429, | 182 | HIDEBUG_RES_PROF_STORAGE_PRESSURE_CRITICAL = 11400429, |
| @@ -185,6 +185,16 @@ typedef enum HiDebug_ErrorCode { | |||
| 185 | * @since 24 | 185 | * @since 24 |
| 186 | */ | 186 | */ |
| 187 | HIDEBUG_RES_PROF_FAILURE = 11400430, | 187 | HIDEBUG_RES_PROF_FAILURE = 11400430, |
| 188 | + /** | ||
| 189 | + * @brief 资源采集异步嵌套深度参数无效。 | ||
| 190 | + * @since 26.1.0 | ||
| 191 | + */ | ||
| 192 | + HIDEBUG_RES_PROF_INVALID_MAX_ASYNC_NESTING_DEPTH = 11400431, | ||
| 193 | + /** | ||
| 194 | + * @brief 资源采集异步任务回栈深度参数无效。 | ||
| 195 | + * @since 26.1.0 | ||
| 196 | + */ | ||
| 197 | + HIDEBUG_RES_PROF_INVALID_MAX_ASYNC_TASK_STACK_DEPTH = 11400432 | ||
| 188 | } HiDebug_ErrorCode; | 198 | } HiDebug_ErrorCode; |
| 189 | 199 | ||
| 190 | /** | 200 | /** |
| @@ -599,6 +609,21 @@ typedef enum OH_HiDebug_ResourceType { | |||
| 599 | * @since 24 | 609 | * @since 24 |
| 600 | */ | 610 | */ |
| 601 | OH_RES_TYPE_GLOBAL_HANDLE, | 611 | OH_RES_TYPE_GLOBAL_HANDLE, |
| 612 | + /** | ||
| 613 | + * @brief DMA内存 | ||
| 614 | + * @since 26.1.0 | ||
| 615 | + */ | ||
| 616 | + OH_RES_TYPE_DMA, | ||
| 617 | + /** | ||
| 618 | + * @brief 匿名共享内存 | ||
| 619 | + * @since 26.1.0 | ||
| 620 | + */ | ||
| 621 | + OH_RES_TYPE_ASHMEM, | ||
| 622 | + /** | ||
| 623 | + * @brief 组合堆 | ||
| 624 | + * @since 26.1.0 | ||
| 625 | + */ | ||
| 626 | + OH_RES_TYPE_COMPOSITE_HEAP | ||
| 602 | } OH_HiDebug_ResourceType; | 627 | } OH_HiDebug_ResourceType; |
| 603 | 628 | ||
| 604 | /** | 629 | /** |


问题类型:🟡建议修改
问题描述:参数描述中直接使用类型名
OH_HiDebug_ProfilerOptions而未使用@link标记。同文件中其他参数描述(如line 243@param dispatchTable、line 294@param config)均使用{@link}引用类型。规范依据:QA-003(参数描述规范)、CE-007(链接格式)
修复建议:修改为"指向{@link OH_HiDebug_ProfilerOptions}结构体的指针,不能为NULL。"