获取程序中的当前优化级别

Get current optimisation level inside a program

本文关键字:优化 程序 获取      更新时间:2023-10-16

是否可以获得当前的优化级别?

我想检查是否将正确的标志传递给编译器。

您可以检查预定义的宏__OPTIMIZE__。例如:

bool isOptimized()
{
#ifdef __OPTIMIZE__
    return true;
#else
    return false;
#endif
}

还有许多其他宏指示其他类型的优化,例如,有许多标志指示启用了特定的指令集优化,如__FSGSBASE____SSE3____k8__corei7_avx__

它并没有真正达到优化级别,但我所做的是:

  • 找到一个具有不同编译器选项的不同大小的程序
  • 运行并检查大小是否已更改

感谢长颈鹿船长