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

时间:2015-10-14 20:32:36

标签: c++ xcode g++ llvm openmp

我正在尝试使用XCode 7.0在C ++中编程的算法。当我将XCode中标准LLVM编译器的性能与使用G ++(5.2.0)编译时创建的二进制文件进行比较时,使用LLVM创建的二进制文件比使用g ++编译器创建的代码快一个数量级(> 10x)。

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

MyOtherViewController

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

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

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:11)

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

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