有没有一种方法可以自动找到最好的编译器选项(在给定的机器上),从而产生最快的可执行文件?
当然,我使用g++ -O3
,但是还有一些额外的标志可以使代码运行得更快,例如-ffast-math
和其他标志,其中一些是硬件相关的。
有谁知道我可以在我的configure.ac
文件中放入一些代码(GNU autotools),以便命令自动将标志添加到 Makefile 中./configure
?
除了自动确定最佳标志之外,我还对一些有用的编译器标志感兴趣,这些标志可以很好地用作大多数优化的可执行文件的默认值。
更新:大多数人建议尝试不同的标志并根据经验选择最好的标志。对于该方法,我有一个后续问题:是否有一个实用程序列出了我正在运行的机器可能的所有编译器标志(例如测试 SSE 指令是否可用等)?