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

c – 使用G而不是LLVM进行编译时代码明显变慢

发布时间:2020-12-14 18:12:11 所属栏目:百科 来源:网络整理
导读:我正在尝试使用XCode 7.0在C中编程的算法.当我将XCode中标准LLVM编译器的性能与使用G(5.2.0)编译时创建的二进制文件进行比较时,使用LLVM创建的二进制文件比使用g编译器创建的代码快一个数量级( 10x). 我正在为g编译器使用-o3代码优化标志,如下所示: /usr/lo
我正在尝试使用XCode 7.0在C中编程的算法.当我将XCode中标准LLVM编译器的性能与使用G(5.2.0)编译时创建的二进制文件进行比较时,使用LLVM创建的二进制文件比使用g编译器创建的代码快一个数量级(> 10x).

我正在为g编译器使用-o3代码优化标志,如下所示:

/usr/local/Cellar/gcc/5.2.0/bin/g++-5 -o3 -fopenmp -DNDEBUG main.cpp 
PattersonInstance.cpp 
... 
-o RROTprog

需要g编译,因为算法必须在高性能计算机上编译和运行,我无法使用LLVM编译器.另外,我想使用Open MP来加快代码速度.

关于造成这些速度差异的原因以及如何解决这些问题的所有想法都非常受欢迎.

在此先感谢您的帮助!

大号

解决方法

我敢打赌,发生的事情如下:你将-o3传递给编译器,而不是-O3(即使用CAPITAL O),因此-o3只是指示编译器将可执行文件输出到名为“3”的文件.但是,您稍后在同一命令行中使用-o RROTprog,最后一个-o是编译器在输出可执行文件时考虑的那个.

净效应:-O3不存在,因此没有进行优化.

(编辑:李大同)

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

    推荐文章
      热点阅读