令人惊喜的Clang

文/fasiondog

经常看到介绍Clang好的文章,却一直没用过。这回趁着重装Ubuntu,试用了下Clang,还真是让人惊喜。虽然不少文章说,Clang和GCC相比,更多的是编译速度快和LLVM 的好处(IDE可以获取类型信息),而性能上并没有太大优势。不过,我的试验却还是显示了巨大的性能差异,当然编译速度快是没得说。我这一直有段程序因为计算量大,每次运行时间大概要12.5秒,改用Clang编译后运行时间却只要7.5秒左右,速度提升了近39%。(不过,我模糊的记得gcc较早版本,不知是Ubuntu12.04还是更之前的默认版本,其实不用12.5秒,后来升级变慢了,当时没深究,总不能又退回去吧。那时在Win7下要13秒左右,gcc应该8~9秒的样子)

简单记录对比了一下运行速度和编译后的文件大小,结果如下:

Clang与GCC速度比较

Clang与GCC速度比较

编译器 速度(秒) 文件1大小 文件2大小 文件3大小
Clang-3.3 7.652 1.6M 162.5K 83.0K
GCC-4.8 12.585 1.2M 147.2K 89.6
MSVC-2010 12.74 808K 124K 87K

注:Clang和GCC为Ubuntu13.10 64位系统,MSVC2010为Win7 64位系统

结果:Clang比Gcc性能提升了39%,编译速度没记录,但要快得多。不过,编译出的文件大小相比gcc的略大。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注