加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 为什么我使用XCode的llvm和来自MacPorts的clang获得更快的

发布时间:2020-12-14 19:12:14 所属栏目:百科 来源:网络整理
导读:我已经编写了一个基准测试方法来测试我的C程序(搜索游戏树),我注意到在XCode 4.0.2中使用“LLVM编译器2.0”选项进行编译比使用来自MacPorts的最新版clang. 如果我理解正确,我在两种情况下都使用了clang前端和llvm后端. Apple是否对其clang / llvm发行版进行
我已经编写了一个基准测试方法来测试我的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位代码,则会产生很大差异的一件事情.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读