心跳回响 发表于 2025-3-26 19:59

Keil编译器优化选项都是什么?

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

心跳回响 发表于 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优化状态
页: [1]
查看完整版本: Keil编译器优化选项都是什么?