怎么提高 C++项目编译速度

2023-08-23 20:25:28 +08:00
 thiiadoewjwe

公司的 C++项目编译每次都要 30 分钟左右

自己最近在网上看,有发现类似的解决方案,比如谷歌的筛选重复头文件,还有一个付费加快编译的,还有 ccache 等

但是有没有 VS 可以直接拿来就用的加快编译的工具呢,或者大家是有什么巧妙的方法吗

从写代码来说,公司已经成屎山了,不会改代码的

4128 次点击
所在节点    程序员
43 条回复
tool2d
2023-08-23 20:37:36 +08:00
少用模板,模板到后期就是会拉垮编译速度。

把 C++当成 C 来用,编译速度原地起飞。
ysc3839
2023-08-23 20:39:38 +08:00
VS 的话应该默认就有增量编译?确认一下编译时是单独编译了有改动的文件,还是怎样?以及是在编译 obj 时慢还是链接时慢?
cleveryun
2023-08-23 20:45:13 +08:00
mark 一下,最近开始接触一个 c++项目,之前一直写 web 前端。
edimetia3d
2023-08-23 20:50:06 +08:00
道理上就是分布式, 预编译, 预链接, 缓存. 项目构建系统需要开发和 IT 一起来维护了, 容易吃力不讨好的.

以前用过 incredibuild, 全公司开发机都强制贡献至少 1 个核, 好像不错.

linux 下都是开发服务器了, 256 core 2T 内存起步, 大力出奇迹.
HannibaI
2023-08-23 20:50:15 +08:00
ccache/sccache
distcc
unity build
precompiled header
framlog
2023-08-23 20:51:07 +08:00
楼上很全了
Puteulanus
2023-08-23 21:00:00 +08:00
ccache 感觉不错,编译 OpenWrt 的时候第二遍重复编译比第一遍快老多了
zzzkkk
2023-08-23 21:03:45 +08:00
@edimetia3d
linux 都是开发服务器 什么意思?
edimetia3d
2023-08-23 21:13:54 +08:00
@zzzkkk 就是直接用一个很强的服务器做开发机, 几十个人共用.
pengtdyd
2023-08-23 21:23:21 +08:00
重构,用新技术
jmc891205
2023-08-23 22:06:05 +08:00
我们都是分布式编译
提交到集群上编译
allAboutDbmss
2023-08-23 22:12:19 +08:00
借楼问一下: rust 有这些 cmake 的问题吗?
richangfan
2023-08-23 22:35:30 +08:00
上双路 EPYC
cnbatch
2023-08-23 22:51:16 +08:00
@allAboutDbmss 编译速度关 cmake 什么事?
ivvei
2023-08-23 23:02:59 +08:00
慢一般就慢在模板上……
yaott2020
2023-08-23 23:32:43 +08:00
正在等 rust 编译顺便来刷刷 v 站
yaott2020
2023-08-23 23:33:03 +08:00
小项目,等 debug 启动中。。。
lance6716
2023-08-23 23:36:08 +08:00
打开 v 站搜索“我为什么放弃 go”,看看编译速度快是一件多么微不足道的小事来平衡一下
learningman
2023-08-24 01:55:37 +08:00
@allAboutDbmss rust 有神奇的 build.rs
dangyuluo
2023-08-24 04:01:16 +08:00
IWYU 去掉重复投文件,然后就是模版不要太多层。有人说 forward declaration ,但是我觉得加快的速度无法冲抵带来的麻烦。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/967749

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX