通过编译 eddic 来比较 GCC 4.7 和 Clang 3.1 的性能

红薯 发布于 2012/11/13 08:52
阅读 10K+
收藏 8

eddic 现在可以使用 Clang 进行编译了(详情), 我想在两个不同的编译器下比较编译时间和生成可执行文件的性能。我选择的编译器是 GCC 4.7.2 和CLang 3.1,测试平台 Gentoo。

编译时间

首先我使用不同的参数比较二者的编译时间,包括 debug 模式以及 -O2 和 -O3 编译参数,编译结果比较:

 

详细数据:

这个结果显示 Clang 的编译速度比 GCC 快多了,三个不同的编译模式下,CLang 的速度比 GCC 快近乎两倍。

运行时性能

接下来我测试生成可执行文件的性能,我测试了三件事,整个测试套件和两个测试用例,我知道是最慢的EDDI编译器。针对每种情况,我连续执行 5 个最慢的操作。 

详细的数据:

这次的差别就比较小,-O2 下 gcc 性能稍好,但在 -O3 下就相当了。对这个结果有一些失望,我原想会有大一点的差距。这说明了 Clang 并不是很多人说的比 GCC 优秀很多,当然这也可能取决于所编译的程序不同。

结论

很显然,在编译 eddic 时,Clang 比 GCC 快得多,但是生成的可执行文件在执行性能上没有多大区别。

英文原文OSCHINA 原创翻译

加载中
0
Jooooooker
Jooooooker
clang的错误提示会好很多吧。。。还是喜欢CLANG
0
Rifle
Rifle
编译器发展了这么多年,可以挖掘的优化也挖掘的差不多了,不同编译器的优化遍都差不多,编译出来的代码效率也差别不大了
0
唐海康
唐海康
是不是意味着我用clang作为编译器的时候make会快近一倍- -
0
unknown
unknown
我觉得的编译速度不是最重要的吧!关键看生产的目标代码的质量如何!
Lunar_Lin
Lunar_Lin
编译时间至少对C++项目来说很有意义.
卢温禾
卢温禾
尝试用Gentoo的漂过
唐海康
唐海康
你不觉得动辄等一天的编译很蛋疼吗= =
0
大尾巴
大尾巴
运行速度相当,但编译速度快一倍,这还不能说明优秀很多么?
0
hangvo
hangvo
不知道怎么装Clang的飘过
0
0
jdwx
jdwx
估计也没有VC用上预编译头文件快。
0
FreeZ
FreeZ
GCC也有预编译头。。。
0
USIDCBBS
USIDCBBS
eddic 是什么东西
返回顶部
顶部