在给定的机器上自动查找最快的exe的编译器选项?

Fra*_*ank 7 c++ compiler-construction optimization compiler-flags

有没有一种方法可以自动找到最佳的编译器选项(在给定的机器上),从而产生最快的可执行文件?

当然,我使用g++ -O3,但有一些额外的标志可以使代码运行得更快,例如-ffast-math和其他一些,其中一些是依赖于硬件的.

有没有人知道我可以放入我的configure.ac文件中的一些代码(GNU autotools),这样标志会被./configure命令自动添加到Makefile中?

除了自动确定最佳标志之外,我还会对一些有用的编译器标志感兴趣,这些标志最适合用作大多数优化的可执行文件的默认值.

更新:大多数人建议尝试不同的标志,并根据经验选择最好的标志.对于那个方法,我有一个后续问题:是否有一个实用程序列出了我正在运行的机器可能的所有编译器标志(例如测试SSE指令是否可用等)?

gre*_*ade 1

是否有一种方法可以自动找到最佳编译器选项(在给定机器上),从而产生最快的可执行文件?

不。

您可以使用多种编译器选项来编译您的程序,然后对每个版本进行基准测试,然后选择“最快”的版本,但这几乎不可靠,并且可能对您的程序没有用处。