什么是Optimization Level

587 阅读1分钟

什么是Optimization Level

这里是苹果官方给出的解释 image.png Optimization Level 可以设置代码的优化等级。

  • None[-O0] : 编译器不尝试优化代码。在开发过程中,当您专注于解决逻辑错误并需要快速编译时,请使用此选项。不要将此选项用于发送可执行文件。

  • Fast[-O,01] : 编译器执行简单的优化来提高代码性能,同时最小化对编译时间的影响。此选项在编译期间还会使用更多内存。

  • Faster[-O2] : 编译器执行几乎所有支持的不需要时空权衡的优化。编译器不会执行此选项的循环展开或函数内联。此选项增加了编译时间和生成代码的性能。

  • Fastest[-O3] : 编译器执行所有优化,以提高生成代码的速度。当编译器执行主动内联函数时,该选项可以增加生成的代码的大小。(通常不建议使用此选项。)

  • Fastest, Smallest[-Os] : 编译器执行所有通常不会增加代码大小的优化。这是传递代码的首选选项,因为它为可执行文件提供更小的内存占用。

在Xcode中,为了方便调试,通常Debug模式默认为None[-O0],Release模式默认为Fastest, Smallest[-Os],在实际的项目中,可以根据项目的情况设置优化级别。