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


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

编译时间

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

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

详细数据:

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

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

运行时性能

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

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

详细的数据:

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

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

结论

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

英文原文,OSCHINA 原创翻译

相关内容