嵌入式代码优化技巧

内存管理技巧

1.C/C++工程应尽量避免深拷贝,尽量用浅拷贝(指针或者引用),如果指针需要频繁拷贝,用智能指针是一种不错的选择

2.启用内存池管理线程的内存开销,事先在堆里边分配好,然后快速使用

避免复杂的浮点运算

1.复杂的浮点运算尽量避免,有些芯片是不支持硬件双精度浮点数的,比如全志T3,实在是非用不可,可以用查表的方式加快速度

2.数据传输可以用整型数据压缩减少带宽,这个在can数据传输比较常见

空间换时间

比如一个数据模型体积很大,加载起来很耗时,可以考虑把它编译到软件里边去,然后运行的时候提前加载到内存

算法复杂度优化

1.时间复杂度,减少循环使用次数

2.空间复杂度的角度优化

并行框架

openMP了解一下,在关键的代码段加上omp并行处理

字节对齐

用好字节对齐功能可以优化cpu流水线的处理效率

内核态的利用

可以把一些业务操作写进驱动,利用操作系统的调度优化,内核态用户态哪一个更高效,这个是相对的,得看系统调用和库函数的颗粒度,可以值得尝试一下

线程调度

尝试调整一些线程的优先级提高调度效率,另外Linux也允许绑核操作

防御性编程

  • 申请一段buffer后总是习惯性的将其内容memset为0,当然这是针对plain类型的数据,防止在数据解析的时候解析到不合法的数据
  • 总是习惯性的判断数组的边界
  • 申请指针不应该悬空,应该给它一个值或者是nullptr,使用前判断它是否为空
  • 巧用断言
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

下里巴人hywing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值