车载中间件 · 资源最小化实战

📘 30章 从入门到优化
01
车载中间件为什么需要资源最小化?CPU、内存、存储、带宽核心指标与测量方法。
02
对比DDS、SOME/IP、MQTT、Zenoh资源占用差异,选择最适合受限场景的协议。
03
什么是零拷贝?共享内存和Socket中的实现,减少数据搬运CPU开销。
04
基于POSIX共享内存实现IPC,避免内核态切换,降低延迟和CPU占用。
05
对比Protobuf、FlatBuffers、Cap'n Proto编码效率与内存占用,选择最小化方案。
06
固定大小内存池、伙伴系统、slab分配器,减少动态内存碎片和开销。
07
服务发现资源开销分析,用静态配置替代动态发现以节省资源。
08
单线程Reactor、多线程Reactor、Proactor模型资源占用对比与选择。
09
基于epoll/io_uring的事件循环,减少线程数量,降低上下文切换成本。
10
时间轮算法 vs 红黑树定时器,大量定时器场景CPU和内存占用对比。
11
异步日志、分级日志、循环缓冲区,避免日志写入阻塞业务线程。
12
轻量级配置解析器,避免XML/JSON库,采用二进制或键值对格式。
13
轻量级心跳机制,减少监控线程资源占用,使用硬件看门狗辅助。
14
有限状态机内存优化,使用表驱动法替代if-else链。
15
模板元编程、constexpr、静态断言,将运行时开销转移到编译期。
16
链接时优化原理,如何通过LTO减少代码体积和运行时开销。
17
使用strip、gc-sections、函数属性优化,移除未使用代码。
18
Coverity、Clang Static Analyzer、cppcheck检测资源泄漏和冗余代码。
19
perf、gprof、Valgrind的使用,定位CPU和内存热点。
20
FreeRTOS、Zephyr、ThreadX资源占用对比,选择适合车载的RTOS。
21
固定优先级调度 vs 最早截止时间优先,减少优先级反转和上下文切换。
22
中断线程化、中断合并,减少中断次数和中断处理时间。
23
通过中间件协调休眠与唤醒,降低待机功耗。
24
轻量级TCP/IP栈(lwIP、uIP)配置与优化,减少内存占用。
25
轻量级加密(AES-CCM、ChaCha20)、认证(HMAC)资源开销分析。
26
差分升级、压缩传输、断点续传,减少存储和带宽占用。
27
核间中断、共享缓存、缓存一致性协议,减少多核通信开销。
28
Docker、KVM、Xen在车载环境下资源占用对比,选择轻量级方案。
29
某Tier1供应商ADAS中间件资源优化实践,从200MB内存降到50MB。
30
设计资源占用最小化的车载中间件原型,整合所有技术并给出性能测试报告。