关于 C++编译速度的一个测试

2019-09-12 11:53:27 +08:00
 mq4079

测试环境

IDE: clion 系统 ubuntu18.04 使用的代码:含有数个模板头的小工程

使用 gcc7.3 编译

| | 完整编译整个项目 | 修改含有模板的.h 文件后编译 |

| 不使用预编译头 | 14 s | 13 s |

| 使用预编译头 | 19 s | 12 s |

使用 gcc9.1 编译

| | 完整编译整个项目 | 修改含有模板的.h 文件后编译 |

| 不使用预编译头 | 12 s | 11 s |

| 使用预编译头 | 18 s | 10 s |

使用 clang8 编译

| | 完整编译整个项目 | 修改含有模板的.h 文件后编译 |

| 不使用预编译头 | 8 s | 8 s |

| 使用预编译头 | 10 s | 7 s |

上表结论

总结: 以后使用 clang8+预编译头方式编译项目

5126 次点击
所在节点    C++
15 条回复
wutiantong
2019-09-12 11:58:42 +08:00
这 tm 真是醉了
nthhdy
2019-09-12 12:09:41 +08:00
我对 c++ 外行。
但是感觉选编译器不能只看速度吧,不同编译器恐怕有细微的差别,被坑到就不好了。
luozic
2019-09-12 12:14:06 +08:00
C++编译现在支持编译缓存加速的,可以去搜搜 github。
across
2019-09-12 12:20:16 +08:00
编译选项、优化等级、代码类、模板展开数量····

这样没什么对比性啊。
across
2019-09-12 12:21:50 +08:00
另外才 10 来秒的工程量(不知道什么硬件性能),现在 C++工程里,大部分编他个十来分钟都算少了。
GM
2019-09-12 12:26:09 +08:00
这感觉就像是坐进车里踩了几下油门,转几圈方向盘,绕 4S 店走了一圈,就开始发表对车的评价了?
zhuangzhuang1988
2019-09-12 12:42:18 +08:00
编译 boost 测试吧。
iyaozhen
2019-09-12 12:59:17 +08:00
拿个编一小时的项目再说吧
augustheart
2019-09-12 13:25:44 +08:00
到目前为止,gcc 编译出来的结果依然整体优于 clang。
ccpp132
2019-09-12 13:31:44 +08:00
gcc 生成的代码优化效果稍好,支持后端更丰富
llvm 新,代码组织的好,前端工具多

现在要提速大部分都是往编译集群,缓存结果的路子上走了。
mq4079
2019-09-12 13:33:16 +08:00
忘了说了,i7 8700 make -j12 编译,没开编译优化,为什么不用大项目测呢。因为懒得等。
testcaoy7
2019-09-12 13:41:16 +08:00
好奇 Intel 自家的 C 编译器效率怎么样
nicebird
2019-09-12 14:44:23 +08:00
十几秒的项目,没什么好对比的
Gcourage
2019-09-12 15:19:05 +08:00
编译项目,可以使用 ccache 来提速,空间换时间。
cmake 也能很好都支持 ccache
classyk
2019-09-12 15:25:13 +08:00
编译结果呢?谁运行最快?谁文件最小?

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

https://www.v2ex.com/t/600341

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

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

© 2021 V2EX