是否有一种方法可以自动找到最佳的编译器选项(在给定的机器上),从而产生最快的可执行文件?
当然,我使用 g++ -O3
,但是还有一些额外的标志可以使代码运行得更快,例如-ffast-math
和其他一些,其中一些依赖于硬件。
有谁知道我可以放入我的 configure.ac
中的一些代码文件(GNU autotools),以便标志将由 ./configure
自动添加到 Makefile 中命令?
除了自动确定最佳标志外,我还对一些有用的编译器标志感兴趣,这些标志适合用作大多数优化可执行文件的默认值。
更新:大多数人建议只尝试不同的标志并根据经验选择最佳的。对于该方法,我有一个后续问题:是否有一个实用程序列出了我正在运行的机器可能的所有编译器标志(例如,测试 SSE 指令是否可用等)?
最佳答案
我认为您不能在配置时执行此操作,但至少有一个程序会尝试在给定特定可执行文件和机器的情况下优化 gcc 选项标志。参见 http://www.coyotegulch.com/products/acovea/例如。
如果您对目标机器有一些了解,您或许可以使用它来为您的代码找到一组好的选项。
关于c++ - 自动查找给定机器上最快的 exe 的编译器选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2443235/