如何高效创建 C++ 并行构建?

在这里插入图片描述

在“CPPCon 2019”中,谷歌首席软件工程师 Chandler Carruth 的演讲《没有零成本的抽象》向大家展示了抽象与成本的关系。抽象需要运行时间、构建时间和人力成本。他清晰地向大家解释了使用 Arena 内存分配器降低运行时成本,反而导致构建成本增加的原因。他也提到,编译本质上是一个高度输出的分布式系统。但是,首先我们要如何建立这样一个系统的?如何有效地进行分布?如何创建高效的并行构建?欲知详情,请继续阅读…

知己知彼,百战百胜

你的构建时间以哪种度量单位计算?几秒、几分,还是几小时?在几秒钟内完成构建,这是每个程序员梦寐以求的事。正如我们把 WTK 的数据当做唯一有效的代码评审指标一样?,程序员耗费在喝咖啡等待构建完成的时间,也是衡量工作效率的一个有效指标。我希望这个时间不要超过 5 分钟。但该如何实现这个目标?大致有以下两种方法:

  • 微观优化
  • 宏观优化

微观优化,加速构建

使用 MSBuild 在命令行上执行构建时,你可能看到以下消息:

Building the projects in this solution one at a time. To enable parallel build, please add the “-m” switch.

在此解决方案中一次只能构建一个项目。要启用并行构建,请添加“-m”开关。

MSBuild 并行编译是通过 -m 开关启用的,并且我们可以限定并行构建的进程数量。如果未使用开关,则会收到上述消息;如果在使用 -m 开关时未限定具体的并行进程数值,则 MSBuild 默认设置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值