[开发工具] KEIL里的优化选项Optimization 选哪个好点

[复制链接]
212|39
xiaoyaodz 发表于 2026-3-14 11:37 | 显示全部楼层
应该选择 -O2,但前提是把 O0 下出现的“狂发数据”问题修好。
updownq 发表于 2026-3-14 13:48 | 显示全部楼层
在 O3 等级下,编译器会进行激进的优化
51xlf 发表于 2026-3-14 14:17 | 显示全部楼层
建议使用 O1 或 O2 优化等级。
abotomson 发表于 2026-3-14 14:45 | 显示全部楼层
平衡点不明显,通常要么 O0 调试,要么 O2 发布。
saservice 发表于 2026-3-14 17:26 | 显示全部楼层
加上 volatile 修饰符,并将优化等级设定为 -O2 进行开发和测试。
adolphcocker 发表于 2026-3-16 08:15 | 显示全部楼层
为什么 O0 和 O3 执行效果不同?
usysm 发表于 2026-3-17 11:01 | 显示全部楼层
绝对不推荐量产用 O3              
bartonalfred 发表于 2026-3-17 12:19 | 显示全部楼层
品推荐使用 -O2               
burgessmaggie 发表于 2026-3-17 13:26 | 显示全部楼层
O0 慢,O3 快。              
alvpeg 发表于 2026-3-17 14:59 | 显示全部楼层
使用 O2 并验证时序,若仍异常则局部禁用优化。
backlugin 发表于 2026-3-17 16:00 | 显示全部楼层
使用 -O2 进行调试              
mikewalpole 发表于 2026-3-20 09:50 | 显示全部楼层
可针对性地对关键模块启用-O3,并通过volatile和编译指令规避潜在问题。
wangdezhi 发表于 2026-3-20 10:56 | 显示全部楼层
轻量级优化,保留大部分调试信息              
uytyu 发表于 2026-3-20 11:19 | 显示全部楼层
O3优化掉了大量局部变量,栈使用量减少,程序反而恢复正常。
rosemoore 发表于 2026-3-20 12:42 | 显示全部楼层
在 O3​ 下正常,这非常典型。
plsbackup 发表于 2026-3-20 14:03 | 显示全部楼层
优先选O1              
timfordlare 发表于 2026-3-20 15:18 | 显示全部楼层
保持-O1+volatile保护
gygp 发表于 2026-3-20 15:48 | 显示全部楼层
加volatile后,O0/O1/O2 等级下程序执行逻辑会完全一致
tifmill 发表于 2026-3-20 16:08 | 显示全部楼层
不同优化等级执行效果应该一致,如果不一致,几乎总是你的代码有问题,而不是编译器错误。
芯路例程 发表于 2026-3-24 20:20 | 显示全部楼层
优化平衡算法,减少不必要计算,提高代码执行速度。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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