Linux 编程: 嵌入式 ARM 平台网络实时性能优化

面向工业传感器平台的 ARM Linux 网络实时优化:先讲应用层收包、poll/select、队列、内存池和零拷贝,再逐项说明 IRQ/NAPI、RPS/RFS、缓冲区、CPU 隔离和 PTP 参数的理由。

October 18, 2026 · 7 min · 1365 words · map[name:DeguiLiu]

C++ 零堆零拷贝: 事件只构造一次,全程只传指针

coact 在固定事件池中构造事件和 payload,后续提交、排队、派发和回收只传 Event*;用侵入式引用计数和所有权转移管理多 AO 共享与回收,并对照 lwIP pbuf、libev watcher 说明边界。

October 18, 2026 · 4 min · 727 words · map[name:DeguiLiu]

C++ 协程调度: 为什么等待密集型任务不必各占一个线程

以 State Threads 和 ISP 流水线为例,解释协程如何接管等待、为何单核等待任务不必各占一个线程,以及如何验证调度收益。

October 17, 2026 · 7 min · 1455 words · map[name:DeguiLiu]

Linux 网络编程排障与高性能传输: 从丢包诊断到零拷贝实战

面向嵌入式 Linux 网络的排障与优化指南。覆盖 UDP 丢包全链路诊断(6 个丢包位置与对应 sysctl 调优)、TCP TIME_WAIT 端口耗尽排障、零拷贝方案对比(sendfile/splice/MSG_ZEROCOPY)、dropwatch 内核丢包追踪,以及同机通信的共享内存方案。

February 20, 2026 · 7 min · 1336 words · map[name:DeguiLiu]

对象池在嵌入式热路径上的三个隐性成本

对象池 (mutex + queue + shared_ptr) 比裸 malloc 快约 60%,却带来 mutex、shared_ptr 原子引用计数和动态容器三项隐性成本。本文用串口解析场景量化这三项成本,并给出预分配环形缓冲的替代方案。

February 17, 2026 · 2 min · 375 words · map[name:DeguiLiu]

内存屏障的硬件原理: 从 Store Buffer 到 ARM DMB/DSB/ISB

内存屏障是无锁编程的基础,但多数文章停留在 acquire/release 的用法上,没有解释 CPU 为什么重排序。本文从 Store Buffer、Invalidation Queue 和 MESI 三个机制出发,推导四种屏障类型的由来,并详解 ARM DMB/DSB/ISB 三条指令的语义。

February 17, 2026 · 10 min · 1928 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]

高性能系统设计的五个反直觉原则: 从消息队列优化中提炼的通用方法论

在优化无锁消息总线的过程中,我们发现五个违反直觉的性能原则: 状态机提升 100% 吞吐、上下文切换减少 99.8%、队列容量无法解决速率失衡、批处理提升 76 倍吞吐、单核自旋性能下降 91%。每个原则附带 ARM 实测数据、数学推导和适用条件分析。

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

perf 性能分析实战: 从硬件计数器到火焰图的完整工作流

perf 是 Linux 内核自带的性能分析利器,但多数开发者只停留在 perf top 层面。本文以嵌入式 ARM-Linux 实战为背景,从 PMU 硬件计数器原理出发,系统讲解 perf stat(IPC/缓存/分支预测)、perf record + 火焰图(On-CPU/Off-CPU)、perf sched(调度延迟)三大核心工作流,并给出 ARM 平台缓存访存分析方法和自动化监控脚本。

February 16, 2026 · 12 min · 2488 words · map[name:DeguiLiu]

perf lock 锁竞争诊断: 从 futex 原理到生产定位实战

以 perf lock 为主线的锁竞争诊断实战。从 Linux mutex 的三条路径(fast/mid/slow)和 futex 内核机制出发,详解 perf lock contention 的每个输出字段含义,演示调用栈分析、锁持有者追踪、类型过滤等进阶用法,通过一个完整案例展示从「发现 95% 竞争率」到「无锁架构 3.6x 吞吐提升」的诊断全过程。

February 16, 2026 · 6 min · 1208 words · map[name:DeguiLiu]

Unix Domain Socket 实时性优化: 嵌入式 IPC 全链路调优

面向嵌入式 ARM-Linux 的 UDS 实时性优化指南。从内核数据路径出发,覆盖 socket 类型选择、epoll 边缘触发、抽象命名空间、fd 传递、memfd 大块传输、eventfd 通知、实时调度与 CPU 隔离、缓冲区调优和 io_uring 异步路径。

February 16, 2026 · 10 min · 2089 words · map[name:DeguiLiu]

TCP 非阻塞发送的 Short Write 问题: 环形缓冲区 + epoll 事件驱动方案

非阻塞 TCP 发送在高吞吐嵌入式场景会遇到 short write。本文从一份 CSDN 环形缓冲方案入手,逐项分析它的 5 个缺陷 (非 2 幂、无界索引、内存泄漏、部分发送丢失、EAGAIN 误判) 并给出改进方案。

February 16, 2026 · 9 min · 1827 words · map[name:DeguiLiu]

SPSC 无锁环形缓冲区设计剖析: 从原理到每一行代码的工程抉择

深度剖析 liudegui/ringbuffer 的 SPSC 无锁环形缓冲区实现:缓存行对齐、2 的幂位掩码、wait-free 无重试设计、精确 acquire-release 内存序、FakeTSO 单核模式、批量 memcpy 等 12 项设计决策,每项都对应具体的硬件行为。

February 16, 2026 · 10 min · 1928 words · map[name:DeguiLiu]

共享内存 IPC 实践: 从 POSIX shm 到 newosp 无锁 Ring Buffer

共享内存是 Linux 上延迟最低的 IPC 机制,但 POSIX shm_open/mmap 缺少同步、生命周期管理和崩溃恢复。本文剖析 newosp 中 ShmRingBuffer 的 CAS 无锁设计、ARM 内存序加固与缓存行对齐,并与 cpp-ipc 对比架构取舍。

February 16, 2026 · 9 min · 1757 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]