6个回答

c++缩短编译时间作用大吗?

知乎用户
196个点赞 👍

会的。大型项目编译几小时也不少见。

如果几小时能缩短的10~20分钟。开发体验会得到大幅度改善。

中项目,如果10~20分钟能缩短到1~2分钟,开发体验也会得到大幅度改善。

小项目,如果5分钟能缩短到30秒以内,开发体验也会得到大幅度改善。

我们的项目以前要编译1~2小时,现在基本给优化到几分钟了。整体体验很好。


其实对于这个,我个人的推荐是:C++程序尽量规划为多进程架构,不要将整个项目放进一个可执行文件,哪怕作为动态库也不太行。因为大型项目有相当多的时间会耗费在链接这个环节。

而链接这个环节,无法用ccache加速,无法并行,无法分布式编译。。。可以说是几乎没有任何手段缩短。

那么我们怎么做呢?把大项目分成20个小项目。分成几十个独立的可执行文件。独立的可执行文件之间用进程间通讯。有效的提升了模块化以及降低了耦合,分工与调试都变得更简单清晰。而且更重要的,大幅度提升了编译速度(其实是提升了链接速度)。

我猜,随着文件尺寸的增长,链接时间,大约是指数级别增长吧。

发布于 2023-06-29 09:49・IP 属地湖北
pansz
自由评论 (0)
分享
Copyright © 2022 GreatFire.org