0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简单高效的鸿蒙编译提速技巧

HarmonyOS开发者 来源:HarmonyOS开发者 2026-03-04 16:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

鸿蒙应用开发中编译构建是开发者最频繁的操作,每一次编译提速都能显著提升项目整体开发效率。本次分享几个简单却高效的鸿蒙编译提速技巧,从编译配置、构建方式等维度进行优化,让你的开发流程更快捷高效。

1 编译配置:通过编译配置,轻松提升编译速度,让开发效率翻倍

(1)默认开启的编译优化配置

DevEco Studio提供了增量构建、并行构建等能力来提升构建效率,减少构建耗时。这些构建配置默认是开启的,开发者可以通过Build Analyzer工具,查看并行(parallel)、增量(incremental)、守护进程(daemon)的开启情况,建议配置为true,以提升构建效率。

5050166a-1621-11f1-90a1-92fbcf53809c.png

(2)特定场景下的性能优化配置

以300万行ArkTS代码规模的工程为例(包含 500 + 模块、20+ lib 库),从构建流程分析,编译耗时主要集中在三个核心阶段:依赖安装、语言编译、压缩打包;下面将针对以上三个阶段,分别给出对应的优化方案。

优化1—依赖安装优化:工程中模块间存在重复依赖时,可以在工程级统一管理lockfile锁文件,减少重复依赖的安装,优化依赖安装耗时;开发者可以在.ohpmrc中开启相关特性(enable_unified_lockfile=true);ohpm安装时涉及对.har/.tgz三方包文件的解压和遍历,开启高性能方法优化解压遍历过程,可减少依赖安装耗时。开发者可以在.ohpmrc中开启相关特性(enable_boost_extraction_speed=true)。通过开启这2个配置,依赖安装耗时可从8min优化至1min内。

50b22ac6-1621-11f1-90a1-92fbcf53809c.png

优化2—语言编译优化:在本地Debug构建时,JS中间产物并不是必须的,在6.0.1(API21)版本,支持配置(ohos.arkCompile.noEmitJs = ture)ArkTS编译过程中不再生成JS中间产物,从而加快编译速度,减少编译内存占用。开启该优化后全量编译耗时可节省~2min,但在Release模式下,开启混淆构建包含JS中间码的HAR等场景依旧会生成JS中间产物而没有优化效果。

5106877e-1621-11f1-90a1-92fbcf53809c.png

优化3—打包压缩优化:当工程存在大量lib库且开启压缩时,lib库越大,压缩耗时越长。本地开发调试时,通常不关心包大小,可在本地构建直接跳过 lib 库压缩。通过配置(module.json5 -> compressNativeLibs = false)跳过libs库压缩过程,提升编译效率。打包任务耗时从1min可优化至3s。

以上优化配置开启后,本地Debug编译耗时显著优化,工程全量编译耗时:从24min优化至14min;增量编译耗时:4min优化至2.5min。

5169881a-1621-11f1-90a1-92fbcf53809c.png

(3)平衡编译性能和内存的配置

DevEco Studio提供了内存优先模式和性能优先模式,性能优先模式开启时,启用了任务缓存,编译结束后常驻内存增加。具体可通过hvigor-config.json5 -> properties -> hvigor.enableMemoryCache配置true。将 hvigor-config.json5 -> execution -> optimizationStrategy 设置为"performance"性能优先。开发者可基于实际开发环境灵活选择。

2 构建方式:选择合适的构建方式,精准识别构建范围,让开发事半功倍

如果需要对某个模块进行开发调试,应避免使用“Make All Modules”,应该使用“Make Module‘***’”,这样避免编译过程中对所有模块启动编译打包任务,进而导致编译耗时变长。当工程下有多个Hap模块(entry或feature),如果只对某一个Hap进行开发调试,也不建议直接使用 “Build Hap(s)”进行构建,这会对所有的Hap模块进行构建,同样会带来较长的编译耗时。这种情况下建议开发者使用“Make Module‘***’”进行构建,仅构建关注的模块,提高开发效率。

51c50dca-1621-11f1-90a1-92fbcf53809c.png

当然,如果是修改代码推包到应用设备上进行调试时,可以直接点击:522d5024-1621-11f1-90a1-92fbcf53809c.png或者52845e28-1621-11f1-90a1-92fbcf53809c.png,使用增量调试:52d7e930-1621-11f1-90a1-92fbcf53809c.png

构建并推送增量包,可大幅减少大型应用调试推包时间,显著提升开发效率。此外,也可使用Hot Reload,修改代码并保存后无需重启应用,在真机或模拟器上即可查看最新的代码效果,帮助开发者更快速地进行调试。

3 更多优化配置参考

更多优化配置可参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-build-optimized。当然,还是建议开发者升级到最新IDE版本,IDE整体性能和内存也在持续优化中。IDE下载链接:https://developer.huawei.com/consumer/cn/download/

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编译
    +关注

    关注

    0

    文章

    698

    浏览量

    35385
  • 鸿蒙
    +关注

    关注

    60

    文章

    3081

    浏览量

    46302

原文标题:鸿蒙软件工程实践:手把手教你优化编译配置,提升鸿蒙编译效率

文章出处:【微信号:HarmonyOS_Dev,微信公众号:HarmonyOS开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    鸿蒙系统编译完成

    1、按官方文档,(ubuntun16.04)鸿蒙系统已经编译完成
    发表于 09-14 16:06

    鸿蒙系统是在什么系统下编译?用的是什么编译器?

    想了解下鸿蒙系统是在什么系统下编译?用的是什么编译器?
    发表于 09-27 09:04

    鸿蒙软总线的简单使用

    鸿蒙软总线的简单使用-HiHope社区官方号-电子发烧友网 (elecfans.com)
    发表于 08-18 11:02

    简单看一下鸿蒙系统中u-boot代码的编译步骤流程

    u-boot在鸿蒙系统中的作用就不说了,这里只简单看一下鸿蒙系统中u-boot代码的编译步骤流程。u-boot的源代码部署在://device/hisilicon/third_part
    发表于 03-29 14:15

    鸿蒙系统的编译相关资料下载

      因为新接触鸿蒙系统的开发,我对鸿蒙编译系统基本上没什么理解,都是凭着经验和百度一边学习一边总结的,本文是我在学习网上关于鸿蒙系统的编译
    发表于 04-07 15:09

    一个简单易用的java编译工具完全汉化版

    一个简单易用的java编译工具完全汉化版
    发表于 04-07 14:09 0次下载

    鸿蒙系统黄金搭档方舟编译器2.0:实现多语言多设备编译

    在今天的华为HDC 2020开发者大会上,除了鸿蒙2.0系统之外,华为还推出了方舟编译器2.0,这是去年首发方舟编译器之后的升级版。
    的头像 发表于 09-10 16:54 4116次阅读

    鸿蒙系统用什么语言 华为方舟编译器原理图分析

    的硬件设备,开发者在上面开发应用相对来说也会更简单一些。 鸿蒙系统用什么语言 根据华为公布的方舟编译器资料 可以推测鸿蒙系统是用C、C++语言编写 先来看华为公布的方舟
    的头像 发表于 04-16 10:42 7846次阅读
    <b class='flag-5'>鸿蒙</b>系统用什么语言 华为方舟<b class='flag-5'>编译</b>器原理图分析

    华为鸿蒙发布会:简单的控制,不简单的体验

    华为鸿蒙如何做到让消费者像使用一台设备一样简单
    的头像 发表于 06-02 21:03 3515次阅读

    Mate40 Pro更新鸿蒙简单体验

    终于揭开最后半面纱的鸿蒙系统,我也拿发布了大半年的Mate40 Pro更新鸿蒙简单体验了一下~
    的头像 发表于 06-06 14:35 5999次阅读
    Mate40 Pro更新<b class='flag-5'>鸿蒙</b>的<b class='flag-5'>简单</b>体验

    stm32简单程序编译及完成51程序设计与仿真

    stm32简单程序编译及完成51程序设计与仿真
    发表于 11-21 16:36 3次下载
    stm32<b class='flag-5'>简单</b>程序<b class='flag-5'>编译</b>及完成51程序设计与仿真

    linux nodemcu 编译,WIN10 子系统编译nodemcu简单高效

    ESP8266和ESP32系类的nodemcu固件可谓为这些设备端的开发简直如虎添翼,使用lua语言来写语法简单高效,而且采用事件驱动的开发模型在也不用考虑中断等复杂的操作,下面我将介绍一种
    发表于 12-17 17:55 0次下载
    linux nodemcu <b class='flag-5'>编译</b>,WIN10 子系统<b class='flag-5'>编译</b>nodemcu<b class='flag-5'>简单</b><b class='flag-5'>高效</b>

    鸿蒙上实现简单的“每日新闻”

    这是一篇讲解如何实现基于鸿蒙 JS 的简单的每日新闻。
    的头像 发表于 12-26 09:58 1885次阅读

    开源鸿蒙技术大会2025丨编译器与编程语言分论坛:语言驱动系统创新,编译赋能生态繁荣

    语言设计演进、编译器优化、工具链创新等前沿议题,汇聚产学研多方力量,共同探讨如何通过语言与编译技术推动开源鸿蒙生态向更高效、更智能的方向发展。
    的头像 发表于 11-20 17:24 1303次阅读
    开源<b class='flag-5'>鸿蒙</b>技术大会2025丨<b class='flag-5'>编译</b>器与编程语言分论坛:语言驱动系统创新,<b class='flag-5'>编译</b>赋能生态繁荣

    深圳:“开源鸿蒙+RISC-V” 生态建设全面提速

    10月30日,在新落成的深圳工业软件园内,政府、企业、机构等各方围绕鸿蒙生态建设,举行一场重量级鸿蒙大会。当日,深圳工业软件园首批50家企业正式入驻,深圳市“开源鸿蒙/RISC-V”产业联盟正式成立,“开源
    的头像 发表于 11-04 15:30 1163次阅读
    深圳:“开源<b class='flag-5'>鸿蒙</b>+RISC-V” 生态建设全面<b class='flag-5'>提速</b>