思考自然的本性,抚摸上帝的脉搏
2025-09-21
前面写了 智能驾驶 DevOps 总览,没有深入的探讨各个关键阶段,本文结合作者在智能驾驶行业的工作经验,着重探讨一下开发环节的流程以及开发质量。谈到开发流程,就不得不提汽车行业软件基本上相关厂商必须要同时掌握和实施的两大支柱:ASPICE 和 ISO 26262 (功能安全)。 ASPICE ..
2025-09-07
在做性能优化时,发现 ros::spin 的线程有些节点的 CPU 占比比较大,通过 perf 抓取性能日志分析,主要集中在几点:subscription 注册的 callback 消耗大,subscription 时反序列化操作消耗大,publish 时存在一定的动态内存消耗等等。为优化以上性..
2025-08-31
之所以写这个话题,是因为在实际工作中遇到了相关的问题,比如在定位coredump问题时发现是因为Eigen内存未对齐导致,比如在优化性能时发现有隐含的动态内存申请是因为使用动态矩阵导致… 基于上述实际问题,发现很多人只是会使用这个库,但是不知道怎么使用更高效,所以整理了以下规范。 Eigen 是..
2025-08-03
DevOps 这一开发理念在2009年被提出后,经过十几年的发展,已经非常成熟了,特别是在微服务架构被提出并流行开来,进一步推动 DevOps 实践深入发展。DevOps 既然已经这么成熟了,我们为啥还要写这个话题?笔者认为理念是成熟的,但应用的业务场景是日新月异的,怎么把这一成熟的理念应用到各..
2021-12-25
模板是什么 模板(Template)在C++ 程序设计语言中,是指函数模板与类模板[1],是一种参数化类型机制。Java和C#中的泛型与C++ 的模板大体对应,但也有一些功能上的显著差异(C++ 模板支持两者没有明确对应的模板模板参数和模板非类型参数,但不支持Java的通配符以及C#的泛型类型约..
2021-12-10
最近测试时发现,运行相对较长一段时间后进程因内存使用超过配额上限而被杀掉,这应该是内存缓慢增长导致的,也就是说出现了内存泄漏。这个进程代码是用C++实现的,且基本没有使用malloc/free, new/delete等显式的内存申请释放,但代码中大量使用了标准库的容器类。这种因为业务逻辑导致容器..
2021-12-03
最近业务新特性开发,由原来的单个action变成了多个action,最后取一个最优action。由于action变多,运行时间也相应多了几倍,action之间是相互独立,互不影响的,那么就想通过并行化的方法提升下性能,这个时候自然而然就想到了线程池。本文记录一下此次并行化重构业务代码时遇到的一些..
2021-11-30
博客荒废了好些年了,这段时间觉得没有大的、好的主题可以写,就一直处于断更状态。最近发现就当笔记记录一些东西备查也是挺好,如果再次过程中还能对他人有一点帮助,那就更好了。是时候捡起来继续了,首先要恢复出本地的写作及部署环境,这里记录一下以备下次使用… WSL环境 如果直接使用Windows或Mac..