newosp: 面向工业嵌入式的 C++17 Header-Only 基础设施库

newosp 是面向嵌入式 Linux 的 C++17 header-only 基础库,覆盖消息总线、层次状态机、共享内存 IPC、调度器等模块。本文介绍它的设计原则、核心模块和四个工业示例。

February 17, 2026 · 4 min · 814 words · map[name:DeguiLiu]

从 C++14 到 C++17: mccc-bus 的四项零堆分配改造

MCCC 系列第三篇。从 C++14 消息总线的四个堆分配瓶颈出发,逐项给出 C++17 替代方案: FixedFunction、VariantIndex 固定数组、Envelope 内嵌 Ring Buffer、FixedString/FixedVector,并附代码对比与性能实测数据。

February 17, 2026 · 6 min · 1220 words · map[name:DeguiLiu]

MCCC 消息总线零堆分配优化与性能实测

从 MCCC 消息总线优化中提炼 5 个零堆分配模式 (Envelope 内嵌、编译期类型索引、函数指针 RAII、定长容器、编译期配置矩阵),附实测数据: BARE_METAL 18.7 M/s,FULL_FEATURED 5.8 M/s,HIGH 优先级零丢失,E2E P99 449 ns。

February 17, 2026 · 8 min · 1672 words · map[name:DeguiLiu]

嵌入式流式数据处理架构: 传感器到网络输出的全链路设计

面向激光雷达、工业视觉、机器人等 ARM-Linux 场景,设计一套 C++17 header-only 的流式数据处理架构。覆盖数据流 (10-100 Hz 大块帧) 与控制流 (低频高可靠消息) 的分离处理、零堆分配内存管理、多级流水线调度,基于 newosp 基础设施库实现。

February 17, 2026 · 8 min · 1658 words · map[name:DeguiLiu]

嵌入式线程间消息传递重构: 用 MCCC 无锁消息总线替代 mutex + priority_queue

线程间消息传递用 mutex + priority_queue + promise/future 组合会带来锁竞争和热路径堆分配。本文用 MCCC 无锁消息总线重写 SendMessage/PostMessage,并给出测试与 Sanitizer 验证结果。

February 16, 2026 · 7 min · 1389 words · map[name:DeguiLiu]

C++14 消息总线的工程优化与性能瓶颈分析

基于 C++14 实现一个带超时管理的线程安全消息总线,解决回调内重入死锁、线程安全订阅管理等工程问题。通过压力测试暴露 mutex + std::function + std::map 方案在多线程高频场景下的性能瓶颈,为后续引入 Lock-free MPSC 方案提供数据支撑。

February 16, 2026 · 7 min · 1316 words · map[name:DeguiLiu]

MCCC 消息总线 API 全参考: 类型、接口与配置

MCCC (Message-Centric Component Communication) 消息总线的完整 API 参考,涵盖 FixedString/FixedVector 容器、MessageEnvelope 消息封装、AsyncBus 总线接口、StaticComponent 编译期组件、优先级与背压配置,每个接口附带签名、参数说明和使用示例。

February 15, 2026 · 8 min · 1547 words · map[name:DeguiLiu]

C++17 并行矩阵乘法: 从单线程到多进程共享内存的性能实测

以 512x512 矩阵乘法为载体,基于 newosp 基础设施库实测对比单线程、线程池、消息总线、多进程共享内存四种并行方案的性能差异,分析各方案在嵌入式 Linux 平台上的架构取舍与加速比。

February 15, 2026 · 4 min · 785 words · map[name:DeguiLiu]

C++ 消息总线性能实测: 6 个开源方案的吞吐量与延迟对比

在同一硬件上统一测试 MCCC、eventpp、EnTT、sigslot、ZeroMQ、QP/C++ 六个消息总线方案,从吞吐量、延迟、内存安全、嵌入式适配性四个维度给出选型建议

February 15, 2026 · 5 min · 1005 words · map[name:DeguiLiu]

如何公平地对比消息总线性能: 基准测试方法论与陷阱

性能基准测试远比 ‘跑个循环、算个平均’ 复杂得多。队列溢出会虚高吞吐 30%,时钟调用本身构成 60-160% 的测量开销,功能差异让 ‘apples-to-apples’ 几乎不可能。本文从实际踩坑经验出发,系统梳理消息总线与并发数据结构基准测试中的常见陷阱与应对策略。

February 15, 2026 · 5 min · 943 words · map[name:DeguiLiu]

Lock-free MPSC 消息总线的设计与实现: 从 Ring Buffer 到零堆分配

嵌入式系统中,消息总线是组件间通信的核心基础设施。本文剖析 MCCC 的九项设计决策:Lock-free MPSC 替代互斥锁、Envelope 内嵌消除热路径堆分配、编译期类型索引替代哈希查找,并附实测数据。

February 15, 2026 · 5 min · 1032 words · map[name:DeguiLiu]

eventpp 性能优化实战: 6 个瓶颈定位与 5 倍吞吐提升

通读 eventpp v0.1.3 核心代码,定位回调遍历加锁、双锁入队、排他锁查 map 等 6 个瓶颈。优化后 Active Object 吞吐量从 1.5 M/s 升到 8.5 M/s,并用 processQueueWith 编译期 Visitor 模式去掉 5 层间接调用,提速 16.7x。

February 15, 2026 · 7 min · 1323 words · map[name:DeguiLiu]

嵌入式系统死锁防御: 从有序锁到无锁架构的工程实践

死锁是嵌入式多线程系统中最隐蔽的故障之一。本文从一个典型的双锁死锁场景出发,逐步演示有序锁、lock_guard、try_lock、无锁队列四种防御策略,分析各方案在嵌入式实时系统中的工程权衡。

February 15, 2026 · 9 min · 1783 words · map[name:DeguiLiu]

嵌入式消息总线的回调优化: 从 std::function 到零开销分发

在嵌入式 C++ 消息总线中,std::function 回调看似方便,实则是延迟抖动和代码膨胀的隐性来源。本文分析回调链路的逐层开销,给出三个递进式优化方案:std::visit 编译期分发、CRTP 静态组件、FixedFunction 栈上类型擦除,最终在保留动态订阅能力的同时,为编译期确定的场景实现零开销分发。

February 15, 2026 · 4 min · 683 words · map[name:DeguiLiu]

C++17 vs C 二进制体积: 嵌入式场景的实测与分析

基于 GCC 13 / x86-64 实测数据,面向 ARM-Linux 工业嵌入式开发者

February 15, 2026 · 5 min · 933 words · map[name:DeguiLiu]