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 快得多,但是生成的可执行文件在执行性能上没有多大区别。