主页

实车调试

0 基本的硬件 实车信息 工控机, ntpserver 域控芯片板子, nas 通过工控机,连接到板子上,车辆上电需要10min,启动完成,交换机启动可能会很慢, 能从工控机ping 通板子说明交换机已经启动完成 1 时间同步 时间同步是最首要要检查的,时间不同步,感知软件无法启动 时间不同步的话,从板端向上逐级排查 主要顺序是: 板端 -> 工控机 -> ntp server 检查板端的时间同步 data 命令 chronyc sources -v命令 看到每个工控机和板端的时间差, delta 控制在3ms内 clockdiff 192.168.1.11 检查 ntpserver信号 ntp-server 依赖gps信号,需要在地面上启动(...

阅读更多

C++最佳实践-格式format相关

行长度相关 代码行宽度推荐80不允许超过120 其中80主要考虑的是人眼视线范围而非屏宽 非法ASCII 字符相关 代码中不要添加非ASCII的字符,允许中文注释 空格和制表位相关 缺省缩进为 2 个空格.使用空格而不是tab 函数声明和定义格式相关 对显式重写的虚函数要使用override修饰。重写虚函数时不要添加virtual关键字 class Base { public: virtual void do_something() {} }; class Derived :public Base { public: void do_something() override {} // good virtual void do_something...

阅读更多

8021. 使子序列的和等于目标的最少操作次数

题目 https://leetcode.cn/contest/weekly-contest-360/problems/minimum-operations-to-form-subsequence-with-target-sum/ 给你一个下标从 0 开始的数组 nums ,它包含 非负 整数,且全部为 2 的幂,同时给你一个整数 target 。 一次操作中,你必须对数组做以下修改: 选择数组中一个元素 nums[i] ,满足 nums[i] > 1 。W 将 nums[i] 从数组中删除。 在 nums 的 末尾 添加 两个 数,值都为 nums[i] / 2 。 你的目标是让 nums 的一个 子序列 的元素和等于 target ,请你返回达成这一目标的 最少操作次数 ...

阅读更多

C++最佳实践-注释相关

注释风格 对于作为接口暴露的头文件,需要尽可能使用doxygen工具的注释语法 使用 // ,注释总是统一在代码上面 不要块注释,不方便cr 文件注释 头文件加入版权公告 class注释 类的定义都要附带一份注释, 描述类的功能和用法 多个线程访问的话要注意记录多线程使用的规则和不变量 function注释 函数声明处的注释描述函数功能 功能注释应以该功能的隐含主语书写,并应以动词短语开头;例如,“Opens the file”,而不是“Open the file” 在编写函数重写(override)相关注释时,请关注重写本身的细节 构造函数析构函数记录对参数所做的操作 详细记录: 输入输出 类成员函数方法调用后是否还有其参...

阅读更多

C++最佳实践-命名相关

通用命名规则 首选将缩写当做为单个单词,例如 StartRpc() 而不是 StartRPC() 。 参考: https://www.educative.io/collection/page/10370001/5111386763952128/6533026123087872 repo 风格保证相对统一 文件命名 全部小写,单词间用”_” 链接,例如file_name.h 定义FooBar 类型的文件: foo_bar.h 和 foo_bar.cc 类型命名 单词首字母大写,如 MyClass class MyClass {}; // class| struct MyStruct {}; // struct typedef int64_t Time...

阅读更多

Protobuf性能优化原理解析:二进制编码与序列化效率

优化方式 二进制编码:protobuf 使用紧凑的二进制格式进行数据编码,相比于文本格式(如 JSON、XML),二进制格式在存储和传输上更加高效。二进制编码不仅减少了数据的体积,还降低了序列化和反序列化的时间开销。 压缩算法:protobuf 提供了多种压缩算法,如 Varint 编码、ZigZag 编码等,用于对整数和布尔类型数据进行压缩。这些算法可以减小整数类型数据的存储空间,从而减少序列化和反序列化的时间和网络传输的带宽消耗。 字段标签和有限字段集:protobuf 使用字段标签来标识消息中的字段,而不是使用字段名称。通过使用数字标签,可以减小数据的体积,并且在序列化和反序列化时可以更快地定位和访问字段。此外,protobuf 还支持有限字段集,即只序列化消息中定义的字段,...

阅读更多

使用SMHasher框架对mumurhash、siphash、cityhas 进行哈希性能对比

hash murmurhash1,murmurhash2,murmurhash3,siphash(redis6.0当中使⽤,rust等大多数语言选用的hash算法来实现hashmap),cityhash 都具备强随机分布性;测试地址如下: https://github.com/aappleby/smhasher 编译执行 测试项目 Sanity 是不是可以使用的 Performance 完成一个散列需要多长时间 Differentials 产生相同哈希的概率,可能导致相同的的最小差异 Keysets 分布均匀程度 一系列的测试方式具体可参考:https://github.com/aappleby/smhasher/wiki/SMHasher 测试报告 ...

阅读更多

7022. 限制条件下元素之间的最小绝对差问题

题目 https://leetcode.cn/problems/minimum-absolute-difference-between-elements-with-constraint/description/ 给你一个下标从 0 开始的整数数组 nums 和一个整数 x 。 请你找到数组中下标距离至少为 x 的两个元素的 差值绝对值 的 最小值 。 换言之,请你找到两个下标 i 和 j ,满足 abs(i - j) >= x 且 abs(nums[i] - nums[j]) 的值最小。 请你返回一个整数,表示下标距离至少为 x 的两个元素之间的差值绝对值的 最小值 。 题解 class Solution { public: int minAbsoluteD...

阅读更多