[其它应用] Keil编译器优化选项都是什么?

[复制链接]
3881|19
 楼主| 心跳回响 发表于 2025-3-26 19:59 | 显示全部楼层 |阅读模式
Keil编译器优化选项都是什么?
Keil编译器的选项页里面有多种优化等级参数可选?对于初学者可能会有些不知所措!一张表格带你了解Keil的优化等级:

优化选项 优化级别 主要优化内容 适用场景
-O0无优化 调试阶段,代码结构不变
-O1轻度优化 删除未使用的变量,合并常量表达式 开发阶段,优化后保留部分可调试
-O2中等优化 函数内联,循环展开 发布版本,性能时间平衡
-O3激进优化 循环展开和向量化,更多函数内联 高性能需求,代码被重构,影响调试
-Os代码内存优化 优化分支和代码布局 资源受限场景


亲爱的网友们,你们学习会了吗?
yangxiaor520 发表于 2025-3-26 21:26 来自手机 | 显示全部楼层
一般都是默认优化设置,容易出错。
灵犀幻影 发表于 2025-3-26 21:34 | 显示全部楼层
对于一些大型的嵌入式项目,是不是需要在开发初期不用考虑优化
迷雾隐者 发表于 2025-3-26 23:21 | 显示全部楼层
Keil的优化选项是不是可以根据项目需求灵活选择
星辰大海不退缩 发表于 2025-3-27 12:42 | 显示全部楼层
都在什么情况下进行KEIL的优化?
魔法森林精灵 发表于 2025-3-27 20:22 | 显示全部楼层
如果项目对性能要求极高,比如实时处理大量数据,是不是-O3优化最合适
复古留声机 发表于 2025-3-27 21:12 | 显示全部楼层
那在实际项目中,是不是一般开发阶段用-O1
星空魔法师 发表于 2025-3-27 21:22 | 显示全部楼层
在使用-O3优化时,代码会被重构,那是不是意味着调试会变得很困难
 楼主| 心跳回响 发表于 2025-4-25 17:45 | 显示全部楼层
星空魔法师 发表于 2025-3-27 21:22
在使用-O3优化时,代码会被重构,那是不是意味着调试会变得很困难

确实会出现。我在调试的时候开了O3时,单步调试都不好好走了
 楼主| 心跳回响 发表于 2025-4-25 17:47 | 显示全部楼层
复古留声机 发表于 2025-3-27 21:12
那在实际项目中,是不是一般开发阶段用-O1

我们使用O0在调试阶段。但在release的时候会使用O1
hehhehee 发表于 2025-4-25 17:47 | 显示全部楼层
调试信息可能不准确,比如变量被优化掉、语句执行顺序被改变。
 楼主| 心跳回响 发表于 2025-4-25 17:48 | 显示全部楼层
yangxiaor520 发表于 2025-3-26 21:26
一般都是默认优化设置,容易出错。

了解编译器,应用编译器。
工具嘛,要使用的顺手才可以
 楼主| 心跳回响 发表于 2025-4-25 17:48 | 显示全部楼层
灵犀幻影 发表于 2025-3-26 21:34
对于一些大型的嵌入式项目,是不是需要在开发初期不用考虑优化

反正,我们并首先考虑优化。
只在项目的后段才会处理
 楼主| 心跳回响 发表于 2025-4-25 17:49 | 显示全部楼层
星辰大海不退缩 发表于 2025-3-27 12:42
都在什么情况下进行KEIL的优化?

优化一直在的
只是深度不一样而已
 楼主| 心跳回响 发表于 2025-4-25 17:50 | 显示全部楼层
hehhehee 发表于 2025-4-25 17:47
500-2500us的PWM高电平部分对应控制180度舵机的0-180度。

亲,窜台了吧~~
jobszheng 发表于 2025-4-27 19:49 | 显示全部楼层
我们是一直使用 O0优化状态
AdaMaYun 发表于 2025-4-29 16:13 | 显示全部楼层
keil优化还是需要注意的
OKAKAKO 发表于 2025-4-29 16:44 | 显示全部楼层
函数指针是一种非常强大的编程工具,它可以让我们以更加灵活的方式编写程序。
nowboy 发表于 2025-5-27 11:24 | 显示全部楼层
进行Keil优化通常在项目需要节省资源、提高性能或满足实时性要求时。
V853 发表于 2025-5-27 18:40 | 显示全部楼层
通常开发阶段用-o1优化,提高编译效率。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

44

帖子

0

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