c – 为什么我使用XCode的llvm和来自MacPorts的clang获得更快的
我已经编写了一个基准测试方法来测试我的C程序(搜索游戏树),我注意到在XCode 4.0.2中使用“LLVM编译器2.0”选项进行编译比使用来自MacPorts的最新版clang.
如果我理解正确,我在两种情况下都使用了clang前端和llvm后端. Apple是否对其clang / llvm发行版进行了改进,以便为Mac OS生成更快的二进制文件?我找不到有关该项目的更多信息. 以下是我的程序为各种编译器生成的基准测试,全部使用-O3优化(越高越好): (Xcode) "gcc 4.2": 38.7 (Xcode) "llvm gcc 4.2": 51.2 (Xcode) "llvm compiler 2.0": 50.6 g++-mp-4.6: 43.4 clang++: 40.6 另外,如何使用来自终端的clang / llvm XCode进行编译?我找不到命令. 编辑:我输出的分数是“每秒数千个游戏”,这是通过足够长的程序运行计算出来的.分数在多次运行中非常一致,例如,最近的主要算法改进使我获得了1%-5%的加速.对于我的程序来说,加速40到50的速度提高了25%. 更新:我没有使用-flto从命令行调用clang.现在,当我从命令行将clang -O3 -flto与/ Developer /usr/bin/clang -O3 -flto进行比较时结果更接近,但Apple的速度仍然快6.5%. 现在如何为gcc启用链接时间优化?当我尝试g -flto时,我收到以下错误: cc1plus: error: LTO support has not been enabled in this configuration 解决方法
Apple LLVM编译器应该在/ Developer /usr/bin/clang下可用.
我想不出为什么MacPorts clang会产生更慢代码的任何特殊原因……我会检查你是否通过了类似的命令行选项.如果您使用一个编译器生成32位代码,而使用另一个编译器生成64位代码,则会产生很大差异的一件事情. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |