当前位置 : IT培训网 > IT培训 > 交流分享 > 嵌入式代码是如何优化的

嵌入式代码是如何优化的

时间:2019-09-26 13:26:58  来源:技能培训网  作者:IT培训网  已有:名学员访问该课程
如何优化嵌入式代码?除了最基本的函数实现细节算法优化外,还有一些细节的处理。当然优化时,也是借助了分析工具来分析哪些函数调用频繁,哪些开销比较大,工具也有可能自动进行优化。接下来,就由IT培训网帮大家理一理如何进行嵌入式代码优化。

如何优化嵌入式代码?除了最基本的函数实现细节算法优化外,还有一些细节的处理。当然优化时,也是借助了分析工具来分析哪些函数调用频繁,哪些开销比较大,工具也有可能自动进行优化。接下来,就由IT培训网帮大家理一理如何进行嵌入式代码优化。

嵌入式代码是如何优化的_www.itpxw.cn

嵌入式代码如何优化?

1、函数展开

类似inline,减少函数出栈入栈开销

2、结构体比较

相应数据结构具有不同的比特位含义,而高位更具有意义,比较时无需将成员一一比较,强转32/64位格式比较。

3、相同操作提取

提取相同深度的指针指向,如下A、C、D为指针,E为具体成员操作。

A-》C-》D-》E1,A-》C-》D-》E2,A-》C-》D-》E3.。. 。..则可将A1 = A-》C-》D,然后使用A1-》E1、A1-》E2、A1-》E3进行替换操作。

4、消息合并

线程之前多个消息发送会导致开销变大,可以合并成单个消息,同时处理多个事情,当然前提是这些事件可进行合并。

5、时间空间的转换(动态申请用静态变量替代)

频繁使用的消息可以改为一次性申请或是静态方式,以减少频繁申请释放的开销;而同一逻辑部分可能申请多次的情况,可以采用半静态半动态的方式,可以通过统计经常同时使用的次数来确定静态内存的大小。

6、寄存器(变量定义)问题

在arm上汇编可以看到当定义uint8 i;for(i = 1; i《 255; i++)时寄存器为32bit,所以在处理8bit数据时,需要额外的移位等操作来放置溢出超过8位情况,此时使用uint32定义反而可以减少MIPS开销。

以上这些,都是有关嵌入式代码优化的相关问题,学嵌入式优化就要进行一系列的学习,掌握这些代码优化技巧,对于我们的学习有一定的帮助。

顶一下
(0)
0%
踩一下
(0)
0%

IT培训0元试听 每期开班座位有限.0元试听抢座开始! IT培训0元试听

  • 姓名 : *
  • 电话 : *
  • QQ : *
  • 留言 :
  • 验证码 : 看不清?点击更换请输入正确的验证码

在线咨询在线咨询

温馨提示 : 请保持手机畅通,咨询老师为您
提供专属一对一报名服务。

------分隔线----------------------------
------分隔线----------------------------

推荐内容