嵌入式培训机构讲解如何优化C代码
关键词:嵌入式培训机构、嵌入式培训班、粤嵌科技
嵌入式现在是一个高薪行业,也是一个大家想要进入IT行业的话会学习的技术。很多的人在学习嵌入式技术的时候都会有很一个疑惑,就是在优化C代码的时候会进入到一个比较难攻克的境界。下面粤嵌科技的小编就给大家整理下优化C代码的技巧,让大家在优化C代码的时候可以更加的得心应收。
嵌入式培训机构
函数展开:
类似inline,减少函数出栈入栈开销
结构体比较:
相应数据结构具有不同的比特位含义,而高位更具有意义,比较时无需将成员一一比较,强转32/64位格式比较。
相同操作提取:
提取相同深度的指针指向,如下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进行替换操作。
消息合并:
线程之前多个消息发送会导致开销变大,可以合并成单个消息,同时处理多个事情,当然前提是这些事件可进行合并。
时间空间的转换(动态申请用静态变量替代):
频繁使用的消息可以改为一次性申请或是静态方式,以减少频繁申请释放的开销;而同一逻辑部分可能申请多次的情况,可以采用半静态半动态的方式,可以通过统计经常同时使用的次数来确定静态内存的大小。
寄存器(变量定义)问题:
在arm上汇编可以看到当定义uint8 i;for(i = 1; i< 255; i++)时寄存器为32bit,所以在处理8bit数据时,需要额外的移位等操作来放置溢出超过8位情况,此时使用uint32定义反而可以减少MIPS开销。
想要把嵌入式的技术完全掌握的话,那么还是要有专业、系统的去学习和培训的。想要学习嵌入式技术的话欢迎来我们粤嵌科技,粤嵌科技有专业的导师团队,引领行业的先进课程,全程专业导师指导,让每位学员可以更快的掌握想学的知识,想要了解更多关于嵌入式培训的课程欢迎对我们公司进行实地
嵌入式现在是一个高薪行业,也是一个大家想要进入IT行业的话会学习的技术。很多的人在学习嵌入式技术的时候都会有很一个疑惑,就是在优化C代码的时候会进入到一个比较难攻克的境界。下面粤嵌科技的小编就给大家整理下优化C代码的技巧,让大家在优化C代码的时候可以更加的得心应收。
嵌入式培训机构
函数展开:
类似inline,减少函数出栈入栈开销
结构体比较:
相应数据结构具有不同的比特位含义,而高位更具有意义,比较时无需将成员一一比较,强转32/64位格式比较。
相同操作提取:
提取相同深度的指针指向,如下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进行替换操作。
消息合并:
线程之前多个消息发送会导致开销变大,可以合并成单个消息,同时处理多个事情,当然前提是这些事件可进行合并。
时间空间的转换(动态申请用静态变量替代):
频繁使用的消息可以改为一次性申请或是静态方式,以减少频繁申请释放的开销;而同一逻辑部分可能申请多次的情况,可以采用半静态半动态的方式,可以通过统计经常同时使用的次数来确定静态内存的大小。
寄存器(变量定义)问题:
在arm上汇编可以看到当定义uint8 i;for(i = 1; i< 255; i++)时寄存器为32bit,所以在处理8bit数据时,需要额外的移位等操作来放置溢出超过8位情况,此时使用uint32定义反而可以减少MIPS开销。
想要把嵌入式的技术完全掌握的话,那么还是要有专业、系统的去学习和培训的。想要学习嵌入式技术的话欢迎来我们粤嵌科技,粤嵌科技有专业的导师团队,引领行业的先进课程,全程专业导师指导,让每位学员可以更快的掌握想学的知识,想要了解更多关于嵌入式培训的课程欢迎对我们公司进行实地