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

标签 c++ optimization compiler-construction compiler-flags

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

当然,我使用 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/

相关文章:

c++ - 静态类成员上未解析的外部符号

C++11 有没有办法静态测试方法访问级别?

c - 支持链接时优化的技术和模式?

java - Antlr - 为什么它期望 FunctionCall 但 PrintCommand 给出

c++ - 加载 boost 的共享库时出错

optimization - 对数成本标准和统一成本标准之间的差异

javascript - 不必要的 for 循环迭代会影响速度吗?

用mingw编译FMOD?

ide - 开发完整的编程语言、编译器和 IDE 需要多少时间和精力?

html - 对 `htmlcxx::HTML::ParserDom::parseTree(std::string const&)' 的 undefined reference