增量编译技术在Lightly中的实践

Lightly团队引入增量编译技术,大幅缩短编译时间,提升开发效率。系统分为监听、消息和编译三个模块,监听代码变化,消息模块结构化变更内容,编译模块针对语言进行编译。用户在Lightly IDE上一键触发编译,实现快速查看结果,优化了传统的开发流程。
摘要由CSDN通过智能技术生成

背景

在产品研发周期中,编写代码、编译、调试占据了工程师们绝大部分的时间,在默认情况下,更新小部分的代码,就需要触发一次全量编译,这个过程耗时大概为分钟级别,导致每次调试的反馈周期会相对较长,影响开发效率。为了解决这个问题,Lightly 团队进行了很多探索与尝试,引进了增量编译技术,旨在缩短编译时间,提升开发效率。

架构设计

鉴于Lightly是一支持全语言的IDE,我们认为设计一个增量编译系统需满足以下条件:

  • 通用性 : 能够接受各类文件类型的源代码变更,并进行结构化处理
  • 扩展性 : 能够适配不同语言,不同框架,进行针对性的编译和构建

为满足以上条件,我们将增量编译系统设计为以下模块:

 如上图所示,系统整体分成3个部分:

  • 监听模块 : 负责监听源程序中文件的变化,新增、修改、删除、重命名等。
  • 消息模块 : 负责将变更的内容结构化为消息,并根据已知类型进行分类打标,作为下游编译模块消费时的依据,同时,消息系统作为传输队列,本身需要具备持久化的特性。
  • 编译模块 : 该模块由各类具体的语言模块构成,通过消息系统的数据作为输入,将变更的内容做针对性的编译和构建,输出产出物。

下面是整体运行的流程

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TeamCode

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值