- O1:这个等级提供了基本优化。编译器会尝试不影响代码可读性的前提下,进行一些基本的性能改进。- O2...
如果与 --debug 一起使用,调试视图可能不太令人满意,因为目标代码到源代码的映射并不总是很清楚。 编译器可能会执行调试信息无法描述的优化。 这是默认的优化级别。 与–O1 的调试视图的不同之处在于: 源代码到目标代码的映射可能是多对一的,因为多个源代码位置映射到文件的一个点的可能性,以及更积极的指令调度。
:默认值,以优化性能为主。 Level 0 (-O0):关闭大部分优化,除了一些简单的转换,生成的代码具有最佳的调试视图。 Level 1 (-O1):应用受限优化。 比如:删除未使用的内联函数和静态函数,删除冗余代码和重新排序指令等。生成的代码经过合理优化,具有良好的调试视图。 Level 2 (-O2):高度优化,目标代码到源代码的...
优化等级 Level 1 (-O1):基本的优化等级,除未引用的代码、常量折等方提高程序执行效率。相对于于-O0,程序执行效率更高,但是代码大小相对于大。 优化等级Level 2 (-O2):中等的优化等级,除了 1中提到的优化等级,还进行了 PRODEKENTAKINGAMARNEUNITED、ELECTRANDECHENTAKENTAINGE等中等程度的优化。相对于于-O1,程...
O0 无优化 Optimization level -O1 -O1 enables the core optimizations in the compiler. This optimization level provides a good debug experience with better code quality than -O0. Also the stack usage is improved over -O0. Arm recommends this option for a good debug experience. ...
O0 (No Optimization):禁用所有优化。O1 (Small):进行基本的优化,保持可读性的同时提升性能。O2 (...
o - O1 applies restricted optimization. For example, unused inline functions and unused static functions are removed. At this level of optimization, the compiler also applies automatic optimizations such as removing redundant code and re -ordering instructions s o ...
优化级别-O1 -O1在编译器中启用核心优化。此优化级别提供了良好的调试体验,并具有比-O0更好的代码质量,堆栈使用率也提高了。Arm建议使用此选项以获得良好的调试体验。 -O1与 -O0 相比,使用时的区别是: 启用优化,这可能会降低调试信息的完整度。 启用了内联和尾调用,这意味着回溯可能无法提供打开功能激活的堆栈...
O - O1适用于受限制的优化。例如,未使用的内联函数和未使用的静态函数将被删除。在这个层面上的优化,编译器也适用于自动优化,如去除冗余代码,并重新排序指令,所以以避免的联锁情况。生成的代码优化合理,具有良好的调试视图。O - O2适用于高优化(这是默认设置)。在这个级别应用的优化利用ARM的处理器架构的深入...
可以提供最高等级的优化,但编译时间会稍微长些,软件调试信息也 比较少。 一般情况下采用default即O2等级的代码优化即可,如果采用O1、O2,则代码空间会变大,但会多很多调试信息,而使用O3的话有时候会对代码业务逻辑产生影响,所以一般采用O2等级进行优化代码。