[STM32C0] 大家都是怎么选择合适的编译器优化等级啊?

[复制链接]
 楼主| 班杰明 发表于 2024-8-12 22:43 来自手机 | 显示全部楼层 |阅读模式
等级高了老是不按我的逻辑运行
caigang13 发表于 2024-8-13 07:59 来自手机 | 显示全部楼层
我都是默认设置,没有改过。
呐咯密密 发表于 2024-8-13 09:20 | 显示全部楼层
等级提高有时候会优化掉部分代码。
铁血丹心LLLL 发表于 2024-8-28 00:42 | 显示全部楼层
较高的优化级别可能会增加代码大小,因为编译器可能会生成更复杂的代码。
一秒落纱 发表于 2024-10-8 21:07 | 显示全部楼层
一般是优化等级比较低就可以
星辰大海不退缩 发表于 2024-10-8 21:26 | 显示全部楼层
那就把优化等级调低一点,使用一些宏命令进行限制Volate
夜阑风雨 发表于 2024-10-9 02:00 | 显示全部楼层
太高了不行啊,容易出现程序bug

远山寻你 发表于 2024-10-9 03:00 | 显示全部楼层
选择合适的编译器优化等级是一个需要权衡性能、代码大小、调试能力和功耗等多个因素的过程。不同的优化等级会对生成的代码产生不同的影响

光辉梦境 发表于 2024-10-9 04:00 | 显示全部楼层
大多数编译器(如GCCClangKeil等)提供了多个优化等级,常见的包括:-O0(无优化):不进行任何优化,生成的代码与源代码非常接近,便于调试。-O1(基本优化):进行一些基本的优化,如常量折叠、死代码消除等,但不会进行复杂的优化。-O2(中级优化):在-O1的基础上进行更多的优化,如循环优化、函数内联等,生成的代码性能更好。-O3(高级优化):在-O2的基础上进行更激进的优化,如自动向量化、循环展开等,生成的代码性能最高,但可能会增加代码大小。-Os(大小优化):在-O2的基础上进行优化,以减小代码大小为主,适用于资源受限的嵌入式系统。-Og(调试优化):在-O1的基础上进行优化,同时保持良好的调试体验,适用于开发和调试阶段

三生万物 发表于 2024-10-9 05:00 | 显示全部楼层
在开发和调试阶段,通常选择较低的优化等级,如-O0-Og。这样可以确保生成的代码与源代码非常接近,便于调试和分析

淡漠安然 发表于 2024-10-9 06:00 | 显示全部楼层
-O0:不进行任何优化,生成的代码与源代码非常接近,便于调试

暖了夏天蓝了海 发表于 2024-10-9 07:00 | 显示全部楼层
一般可以选择-Og:在-O1的基础上进行优化,同时保持良好的调试体验,适用于开发和调试阶段

江河千里 发表于 2024-10-9 08:00 | 显示全部楼层
在性能优化阶段,可以选择较高的优化等级,如-O2-O3。这样可以生成性能更好的代码,但可能会增加代码大小和调试难度

别乱了阵脚 发表于 2024-10-9 09:00 | 显示全部楼层
在资源受限的嵌入式系统中,通常选择-Os优化等级。这样可以生成较小的代码,节省内存和存储空间

冰春彩落下 发表于 2024-10-9 10:00 | 显示全部楼层
选择优化等级时,需要权衡性能、代码大小和调试能力

xiaoyaodz 发表于 2024-10-11 21:26 | 显示全部楼层
如果项目对性能要求很高,可以尝试更高的优化等级。
Stahan 发表于 2024-10-13 22:03 | 显示全部楼层
空间大的情况下不优化
1988020566 发表于 2024-10-14 09:17 | 显示全部楼层
对于对运行效率要求不高的应用,较低的优化等级(如-O1)可能就足够了。
earlmax 发表于 2024-10-14 12:43 | 显示全部楼层
开发阶段 通常使用**-O0或-O1**,以便于调试。
robincotton 发表于 2024-10-14 19:15 | 显示全部楼层
根据项目的性能要求、内存限制和代码大小来选择合适的优化等级。如果对性能有较高要求,可以选择较高的优化等级;如果对内存和代码大小有严格限制,可以选择较低的优化等级。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

194

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部