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

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/91/v3/0agcocf6T_OeGcPW6ouoxA/zh-cn_image_0000002624993637.png?HW-CC-KV=V1&HW-CC-Date=20260709T132918Z&HW-CC-Expire=86400&HW-CC-Sign=7EF71F42564AFD2E9FC0289A31E97F71138C40A875C53057E21D7C4080041C04)，打开Build Analyzer页签。
*   构建成功且使用构建分析能力时，在Build窗口Build Output页签下的日志下方点击链接，跳转至Build Analyzer页签。

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

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

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/4f/v3/IZb1tkRsToCFQk_VfqiPqg/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260709T132918Z&HW-CC-Expire=86400&HW-CC-Sign=9F03A74C2EAB6FB1F13CABC79621B0BD4FDED00FBC4E3E328F5A232FDE20A636)

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

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/54/v3/JGcP4mdCQ5Ga4JvzLHF1tg/zh-cn_image_0000002624993655.png?HW-CC-KV=V1&HW-CC-Date=20260709T132918Z&HW-CC-Expire=86400&HW-CC-Sign=28F85718E7F7B7875F80E14C30BABB297F49BB5B5930D98107BF0ECB77197AEC)

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

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

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/50/v3/jYzAmnneQt2Skngigr-LbQ/zh-cn_image_0000002624993651.png?HW-CC-KV=V1&HW-CC-Date=20260709T132918Z&HW-CC-Expire=86400&HW-CC-Sign=E50C6637DC2733EDE1212D302B36F54A2200C5A20F5D6AEF64C80166A939639D)

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

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/ec/v3/gbMJvnW0S4C5QCwcPvn0GQ/zh-cn_image_0000002594474282.png?HW-CC-KV=V1&HW-CC-Date=20260709T132918Z&HW-CC-Expire=86400&HW-CC-Sign=E7F740CED3D323B0E96AC95A7E5FC53C6E7058A344A809BAC97E6C01D6E710A4)

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

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

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

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/e/v3/n9GqGpleTyuSnd-Qc_1Q3Q/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260709T132918Z&HW-CC-Expire=86400&HW-CC-Sign=11CD5A7F699C1E825FA427AC771657C4F87D49BA8D93088E21D1A8B99B0773AA)

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

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

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

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/be/v3/T44bJWvWSnCg4hy6p9Uv_g/zh-cn_image_0000002624993645.png?HW-CC-KV=V1&HW-CC-Date=20260709T132918Z&HW-CC-Expire=86400&HW-CC-Sign=489515BBA0B8D898E8C23F972BDDF4E56C940B604F5D28715A05A02C04767D3F)

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

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

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/15/v3/vTvZm-jUQTuh5_MWjqLMqg/zh-cn_image_0000002594474276.png?HW-CC-KV=V1&HW-CC-Date=20260709T132918Z&HW-CC-Expire=86400&HW-CC-Sign=BDA4A24C50E9FDD2C643BB2D111B1631980B0A33878E2F15038CC291E4B1AEAF)

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/e9/v3/A4t7_xI8THOiFUZiyE6XPA/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260709T132918Z&HW-CC-Expire=86400&HW-CC-Sign=BAED8381397DF89E998B28F8933E778A02211FB057F52DFF133748CF297DEAC3)

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/41/v3/VtWNrNNGTvG0epLkuLBYSg/zh-cn_image_0000002624993647.png?HW-CC-KV=V1&HW-CC-Date=20260709T132918Z&HW-CC-Expire=86400&HW-CC-Sign=685D32BE04C597A17B2ACD9C7EF09F128624485710E71AB7817B747AC00B21C8)

#### 导出日志

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

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/c5/v3/ZxBpgka7TxK9ebB7ilsUaw/zh-cn_image_0000002594474294.png?HW-CC-KV=V1&HW-CC-Date=20260709T132918Z&HW-CC-Expire=86400&HW-CC-Sign=6225B3C9BAB95D1BA6555B9DBDED3B32D81BAABBBF2C99B5C74E16DB7EC74C46)

导出内容有：

*   分析统计本次构建的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/bd/v3/U6Qj_fK2R0CcN00GwQBqlA/zh-cn_image_0000002594634188.png?HW-CC-KV=V1&HW-CC-Date=20260709T132918Z&HW-CC-Expire=86400&HW-CC-Sign=EFBF28D98F4C23EEEE1CC3A4E309EABCD8D84A1C903DCB9C02821F3A09BD72F9)

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

进入**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/52/v3/zjdcqYB-QXylab0j8jP2pw/zh-cn_image_0000002594634208.png?HW-CC-KV=V1&HW-CC-Date=20260709T132918Z&HW-CC-Expire=86400&HW-CC-Sign=A2FA2A47BF5918282AC97214DFE7A0C5CE4507EB1AEAC83E89F9F24B62A76A5D)

#### 生成构建可视化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文件，该文件可直接在浏览器中打开。