嵌入式代码优化技巧
内存管理技巧
1.C/C++工程应尽量避免深拷贝
,尽量用浅拷贝
(指针或者引用),如果指针需要频繁拷贝,用智能指针
是一种不错的选择
2.启用内存池
管理线程的内存开销,事先在堆里边分配好,然后快速使用
避免复杂的浮点运算
1.复杂的浮点运算尽量避免,有些芯片是不支持硬件双精度浮点数
的,比如全志T3
,实在是非用不可,可以用查表的方式加快速度
2.数据传输可以用整型数据压缩减少带宽,这个在can数据传输比较常见
空间换时间
比如一个数据模型
体积很大,加载起来很耗时,可以考虑把它编译到软件里边去,然后运行的时候提前加载到内存
算法复杂度优化
1.时间复杂度,减少循环使用次数
2.空间复杂度的角度优化
并行框架
openMP
了解一下,在关键的代码段加上omp并行处理
字节对齐
用好字节对齐
功能可以优化cpu流水线的处理效率
内核态的利用
可以把一些业务操作写进驱动,利用操作系统的调度优化,内核态
和用户态
哪一个更高效,这个是相对的,得看系统调用和库函数的颗粒度,可以值得尝试一下
线程调度
尝试调整一些线程的优先级
提高调度效率,另外Linux也允许绑核操作
防御性编程
-
申请一段buffer后总是习惯性的将其内容memset为0,当然这是针对plain类型的数据,防止在数据解析的时候解析到不合法的数据
-
总是习惯性的判断数组的边界
-
申请指针不应该悬空,应该给它一个值或者是nullptr,使用前判断它是否为空
-
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)