分析构建过程
======

Build Analyzer可以展示编译构建过程的重要信息，开发者能够通过Build Analyzer的可视化分析来排查构建过程中的性能和内存问题。

#### 进入Build Analyzer

Build Analyzer会在每次构建应用时默认生成一份报告，并在Build Analyzer窗口进行展示。

可以在构建完成后通过以下方式打开Build Analyzer窗口：

*   点击菜单栏**Build > Build Analyzer**进行查看。
*   在Build窗口中的Build Output页签，点击左侧边栏![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/76/v3/MYKTnZ9TS6SP0BguC7ecIQ/zh-cn_image_0000002624993637.png?HW-CC-KV=V1&HW-CC-Date=20260612T073909Z&HW-CC-Expire=86400&HW-CC-Sign=2B74629C27E19F4B0F02A2152A76E57DB6933A092B8C44015CF350D7A3C5ADC4)，打开Build Analyzer页签。
*   构建成功且使用构建分析能力时，在Build窗口Build Output页签下的日志下方点击链接，跳转至Build Analyzer页签。

#### 查看构建历史记录

Build Analyzer左侧的Build History窗口中按时间顺序显示构建历史记录，包括本工程的构建历史数据和[导入的日志数据](#section26761217305)。点击构建历史记录可以显示对应概览和可视化图谱界面。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/81/v3/n11k45lyRx6igi4Xz9mLXQ/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073909Z&HW-CC-Expire=86400&HW-CC-Sign=7092BDDF254C1514C2FE449C4EF80B589CD5AC4B398C628EA7ED3BF28C2D3BE1)

本工程的构建历史数据保存在./hvigor/report目录下，超过10条记录后，最久的历史数据将会被自动清理。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/97/v3/B_ykpuKMS_uLv8ZY0EbM4Q/zh-cn_image_0000002624993655.png?HW-CC-KV=V1&HW-CC-Date=20260612T073909Z&HW-CC-Expire=86400&HW-CC-Sign=EB58F0DF742A241160715FE9D6FDD9E560F3EB016D958F44788C51454C59E283)

#### 查看构建任务时间图谱

完成构建后首次打开Build Analyzer 时，窗口会显示构建分析概览，如下图所示：

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/10/v3/P9qYKRtvRfm3LFh6zUH2bQ/zh-cn_image_0000002624993651.png?HW-CC-KV=V1&HW-CC-Date=20260612T073909Z&HW-CC-Expire=86400&HW-CC-Sign=2105BA2776B9B38E90B061C990277AB65007C94C681F324881148D1E99C66217)

如需查看构建任务时间图谱，请从下拉菜单中点击Tasks，默认进入时间图谱界面。该界面会分块显示构建历史记录、构建任务时长图谱、构建日志以及对应的日志详情信息，如下图所示：

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/36/v3/QRA0CDJkRKuEBie_Xuo7bw/zh-cn_image_0000002594474282.png?HW-CC-KV=V1&HW-CC-Date=20260612T073909Z&HW-CC-Expire=86400&HW-CC-Sign=8166FC8BE1AF3480A354FA833DFCA3BD2480F09EE722AC09199603919BE71E01)

图谱中的构建任务展示按照各个任务总时长占比，以相对长度进行展示。可以对时间块进行缩小放大，查看具体的任务名称及耗时信息。

图谱中构建子任务默认是折叠的，可点击Build TimeLine的节点信息，展开查看子任务的构建时长图谱。

图谱与日志信息是联动的，可点击图谱中的任务信息，即可联动对应的日志以及日志详情；相同的，点击日志时，也可联动对应的上方图谱信息。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/45/v3/48SH_em0SeyySGF7RGX6ng/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073909Z&HW-CC-Expire=86400&HW-CC-Sign=F3654B81C50736331CECD2C225ECF7B4D52AFBD338B7717D74A151298C8EA01D)

Build Analyzer不会全部显示构建操作中的所有任务，而是重点显示决定构建总时长的任务。

图谱下方日志模块，展示每次构建的所有日志信息，并按日志级别（Info、Debug、Warn、Error）进行区分，并提供日志搜索功能。

点击日志，可与上方图谱和右侧Details模块，进行联动显示。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/6e/v3/eJmZ5PBpSc-kNfwXpiUeTw/zh-cn_image_0000002624993645.png?HW-CC-KV=V1&HW-CC-Date=20260612T073909Z&HW-CC-Expire=86400&HW-CC-Sign=2CE156333BFA4EF46A16F291206A13D662AAE6800F9595CA523459E3EF65F532)

#### 查看构建任务占比图谱

如需查看决定构建时长的任务的占比细分数据，请点击概览页面上的**Common views into this build**下方链接 ，您也可以从下拉菜单中选择**Tasks**并确认您要的任务分组类别。任务以模块、业务类别、Target以及同一模块下的Target、同一模块下的业务类别和同一Target下的业务类别进行分组。图表中任务按照时间占比从大到小排列，点击子任务可详细了解其执行情况。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/ec/v3/Q_ARihI4TZ6Nz4tspWsIbQ/zh-cn_image_0000002594474276.png?HW-CC-KV=V1&HW-CC-Date=20260612T073909Z&HW-CC-Expire=86400&HW-CC-Sign=A2A3039144BF07C79E97729809AE287AAAC02665B74CE65E3FF621B84408D08D)

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/9a/v3/3EBSvyvORsGEIRNlTvsZUA/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073909Z&HW-CC-Expire=86400&HW-CC-Sign=50550E5809C7E9D860E206560644570C23C30FB28CE7E3C842147D19252F5627)

1\. 由于并行线程的存在，分类任务计算时间可能会比实际总时间长；

2\. 饼图中Configuration代表未记录的任务占比。

#### 查看构建过程内存消耗曲线图

如果要分析构建过程的内存消耗情况，需要先[设置构建分析模式为Advanced](#section207890565217)，启用内存监测，构建后会生成内存消耗曲线图。从DevEco Studio 5.1.1 Beta1版本开始支持。

点击概览页面上**Common views into this build**下方的链接**Memory Usage During Build**，也可以从下拉菜单中选择**Tasks**和**Memory Usage**分组，查看内存消耗曲线图。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/a6/v3/0vcj5paxRSSdQfmZ3ktYaw/zh-cn_image_0000002624993647.png?HW-CC-KV=V1&HW-CC-Date=20260612T073909Z&HW-CC-Expire=86400&HW-CC-Sign=A5B194AEBF8591EEAB201A814EC454292C87ECBFBFDB2C6B33868E061FA9A874)

#### 导出日志

如需查看本次构建日志，您可以点击导出按钮进行日志导出。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/6/v3/1fmt5v7sSFKIw_rgRbq23A/zh-cn_image_0000002594474294.png?HW-CC-KV=V1&HW-CC-Date=20260612T073909Z&HW-CC-Expire=86400&HW-CC-Sign=675992A583358B54FB2425C4C707600EEDDA7E596D5F551021A9B67972EFE010)

导出内容有：

*   分析统计本次构建的html文件。
*   记录构建日志的build.log文件。
*   记录构建daemon日志的daemon.log文件。
*   记录构建任务耗时的report.json文件。
*   记录构建过程内存消耗的report-monitor.json文件。

#### 导入日志

如需查看历史或其他工程的构建日志，您可以点击导入按钮导入report.json文件，导入的文件保存在工程./hvigor/report/upload目录下，导入后可在Build Analyzer左侧的Build History窗口中查看。upload目录下最多保存10条记录，超过10条记录后，最久的历史数据将会被自动清理。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/f8/v3/ue_eVJMrT6-fORIjKJjxzw/zh-cn_image_0000002594634188.png?HW-CC-KV=V1&HW-CC-Date=20260612T073909Z&HW-CC-Expire=86400&HW-CC-Sign=47EB82F19837BA7E056E31524E068A001CBE830800739983BDCD3B53589925F9)

#### 设置构建分析模式

进入**File > Settings**（macOS为**DevEco Studio > Preferences/Settings**） **> Build, Execution, Deployment > Build Tools > Hvigor**下，查看**Use build analysis mode**选项：

*   勾选此项：
    *   模式选择为Normal，即为普通模式（默认选项），记录简单打点数据进行分析。
    *   模式选择为Advanced，即为高级模式，记录详细打点数据进行分析（此模式下，建议搭配使用node 18版本）。
    *   模式选择为Ultrafine，即超精细化模式，与Advanced模式相比，在ArkTS编译阶段记录更详细的打点数据，但开启后可能导致编译构建时间更长。从DevEco Studio 6.0.0 Beta1版本开始支持。
*   取消勾选，即为不记录该次构建数据，不进行分析。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/8a/v3/bj6FUfl6QSmFVEfqj1GnCw/zh-cn_image_0000002594634208.png?HW-CC-KV=V1&HW-CC-Date=20260612T073909Z&HW-CC-Expire=86400&HW-CC-Sign=8EEB729843D150B831788C362F37B35B011D76B921FB21CEAA24F93CEDFC57DB)

#### 生成构建可视化html文件

*   通过命令行方式生成构建可视化html文件。如生成HAP模块的构建可视化html文件，命令如下：
    
    hvigorw assembleHap --analyze=normal --config properties.hvigor.analyzeHtml=true
    

*   通过[hvigor-config.json5](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-hvigor-set-options)配置文件中properties.hvigor.analyzeHtml字段生成构建可视化html文件：
    
    {
      "modelVersion": "26.0.0",
      "dependencies": {
      },
      "execution": {
      },
      "logging": {
      },
      "debugging": {
      },
      "nodeOptions": {
      },
      "properties": {
        "hvigor.analyzeHtml": true  // 生成构建可视化html文件
      }
    }
    
    再执行构建，例如执行以下命令：
    
    hvigorw assembleHap --analyze=normal
    

执行以上命令后，在工程的.hvigor/report目录下生成对应的html文件，该文件可直接在浏览器中打开。