嵌入式代码优化技巧

news/2025/1/21 15:33:17/文章来源:https://www.cnblogs.com/hywing/p/18238194

内存管理技巧

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

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

避免复杂的浮点运算

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

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

空间换时间

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

算法复杂度优化

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

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

并行框架

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

字节对齐

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

内核态的利用

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

线程调度

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

防御性编程

  • 申请一段buffer后总是习惯性的将其内容memset为0,当然这是针对plain类型的数据,防止在数据解析的时候解析到不合法的数据

  • 总是习惯性的判断数组的边界

  • 申请指针不应该悬空,应该给它一个值或者是nullptr,使用前判断它是否为空

  • 巧用断言

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/721724.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件版本那些事

软件发布版本的常见类型软件版本跟测试阶段或者软件的生命周期所处的阶段有关,一般有以下几个版本 alpha 内测版本,仅限团队内部测试使用,不对外公开。大多数软件产品在向公众发布之前都要经过多个步骤。alpha版本是该系统的一部分,用于开发高效、准确和无缺陷的软件程序。…

RT-Thread和Infineon主持的嵌入式网络应用开发沙龙

2023年12月9日 深圳市维也纳好眠国际酒店 由RT-Thread和Infineon主持的嵌入式网络应用开发沙龙主题 会议由RT-Thread && Infineon共同主持,PSoc62开发板现场演示从0到1搭建智能数据网关RT-Thread介绍 rt-thread社区负责人郭占鑫郭工介绍RT-Thread英飞凌合作伙伴介绍 英…

小白学开源

如何参与到GitHub开源项目中去第一步 访问程序员交友网站,注册GitHub账号,注册流程请自行了解,如果已有账户请登录第二步 在搜索框输入你想查找的项目,例如cjson第三步 选择你感兴趣的那个项目,这里选择排行最前的那个,它的收藏数有9.5k第四步 先点击Fork生成自己的子仓库…

RT-Thread Studio使用教程

RT-Thread工程开发教程,基于PSoc62开发板介绍 RT-Thread Studio是官方出品的一款专门针对RT-Thread嵌入式开发、部署、调试、测试的集成开发环境,它基于Eclipse开源项目开发,极大的提高了嵌入式开发者的开发效率,目前最新版本是2.26 下载 使用浏览器打开RT-Thread官网,选择…

一款.NET开源、免费、实用的多功能原神工具箱(改善桌面端玩家的游戏体验)

前言 今天大姚给大家分享一款.NET开源(MIT License)、免费、实用的多功能原神工具箱,旨在改善桌面端玩家的游戏体验:胡桃工具箱。工具箱介绍 胡桃工具箱是一款.NET开源(MIT License)、免费、实用的多功能原神工具箱,专为现代化 Windows 平台设计,旨在改善桌面端玩家的游…

VisualStudio 如何 SSH 远程调试 Linux 的 dotnet 应用的启动

本文将告诉大家,如何使用 VisualStudio 2022 工具,通过 SSH 远程调试运行在 Linux 系统上的 dotnet 系应用的启动过程本文写于 2024.06.07 如果你阅读本文的时间距离本文编写的时间过于长,那本文可能包含过期的知识 当前的 VisualStudio 2022 不能和在 Windows 一样,在 Lin…

Kernel 优化架构分析

Kernel 优化架构分析 推理引擎的 Kernel 层通常是推理引擎中用于执行底层数学运算的组件。在深度学习模型推理过程中,需要对大量数据进行高效的数学运算,如矩阵乘法、卷积、池化等。Kernel 层就是实现这些运算的核心部分,它直接影响着推理引擎的速度和效率。本章将从四个方面…

Spark安装与配置

以下是本文所用到的文件包 spark-2.4.5-bin-hadoop2.7https://incstallation-package.oss-cn-beijing.aliyuncs.com/spark-2.4.5-bin-hadoop2.7.tgz 一、 Spark安装与配置 1、选择spark2.4.5版,与之前hadoop-2.7.3与之相匹配。 如果没有安装过hadoop,可以查看 https://www.cn…

PVE管理虚拟机节点

今天使用PVE命令安装虚拟机。‍ 查看所有虚拟机qm list 查看所有虚拟机 ​​ 创建虚拟机qm create 创建虚拟机 qm create 106 --name vm-test --memory 2048 --net0 virtio,bridge=vmbr0基础配置 这条命令会创建一个 VM,ID 为 106​,名称为 myvm​,分配 2048MB​ 的内存,并…

Ubuntu 更新到 22.04.4 LTS 记录器 syslog 出错

显示 Sep 15 06:36:09 mail2 rsyslogd: action action-0-builtin:omfile suspended (module builtin:omfile), retry 0. There should be messages before this one giving the reason for suspension. [v8.2112.0 try https://www.rsyslog.com/e/2007 ] Sep 15 06:36:09 mail2…

SSH免密登录+JDK安装配置+Hadoop安装配置

一 、 设置SSH免密登录 1、修改主机名 (1)打开 /etc/hostname 修改为:master (2) 重启 在终端输入reboot 2、配置网卡 (1)改写网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-ens33 #BOOTPROTO="dhcp" #注释 BOOTPROTO="static" …

2024 新高考I卷数学19题

整张卷子最好玩的题。Tips: 作者想题的时候在打块,可能是错的。 题目长这样:首先这个 \(a\) 没有任何用,只关注下标。 (1) 是超级原神题,答案是(1,6), (1,2), (5,6)。 (2) 我们拿 \(m = 3\) 玩一下:1 (2) 3 4 5 6 7 8 9 10 11 12 (13) 14 1 4 7 10 3 6 9 12 5 8 11 14 做完…