[开源上新] 基于Share Memory的IPC : https://github.com/missionlove/SMIPC

张开发
2026/5/22 19:03:11 15 分钟阅读
[开源上新] 基于Share Memory的IPC : https://github.com/missionlove/SMIPC
SMIPCA light IPC DLL based on share memory.github地址https://github.com/missionlove/SMIPCSMIPC 是一个基于 Windows 共享内存Shared Memory的轻量级 IPC 库面向低延迟、高吞吐的本机进程通信场景。项目核心逻辑SMIPC 的核心是“数据区 事件队列”的双层设计数据区Buffer使用共享内存存放 payload。事件队列IO Event Queue仅传递事件元数据event_code、event_id、user_tag、buffer_ref。同步原语通过互斥量和信号量实现并发安全与阻塞唤醒。业务状态位working_flag由业务方维护表达“是否仍有待处理工作”。典型流程进阶模式smipc_buffer_write写入 payload得到buffer_refsmipc_event_push推送事件携带buffer_ref接收方smipc_event_pop后smipc_buffer_read取数据此外也提供简化模式smipc_send/smipc_receive用于快速接入。项目目标提供一个简单、稳定、可嵌入的 Windows IPC DLL。支持请求-响应、批量消息、优雅关闭等常见业务模式。在保证接口清晰的前提下提供较好的延迟和吞吐表现。项目优点低开销数据在本机共享内存中流转避免额外序列化/网络栈开销。接口分层清晰既有简化 API也有可控度更高的事件缓冲区 API。扩展性好支持批量 push/pop、多线程、可选 TCP 同步通知。工程可落地仓库内包含ServerDemo、ClientUI、Tests、Benchmark示例与验证代码。性能数据本地压测压测程序x64/Release/SMIPC.Benchmark.exe测试命令本次数据来源SMIPC.Benchmark.exe 50000 64 1 1SMIPC.Benchmark.exe 50000 256 1 1SMIPC.Benchmark.exe 50000 1024 1 1SMIPC.Benchmark.exe 30000 64 8 1SMIPC.Benchmark.exe 50000 64 1 4说明数据为单机实测结果用于趋势参考不同 CPU/负载/编译选项下数值会变化。压测结果表场景参数rounds,payload,batch,threadsQPS (msg/s)吞吐 (MB/s)平均延迟 (us/msg)P50 (us)P90 (us)P99 (us)单线程小包50000, 64B, 1, 189,358.910.9111.1910.612.418.8单线程中包50000, 256B, 1, 186,150.642.0711.6110.812.919.4单线程大包50000, 1024B, 1, 185,817.4167.6111.6511.012.919.1批处理模式30000, 64B, 8, 1191,63723.395.2240.8*52.6*61.3*4线程并发50000, 64B, 1, 4252,62930.843.9614.2*20.2*31.1** 说明批处理/多线程下p50/p90/p99的统计口径与单线程单条消息不同Benchmark 程序会输出口径说明。QPS 图示基于以上数据SMIPC Benchmark QPS64B-1T256B-1T1024B-1T64B-B864B-4T260000240000220000200000180000160000140000120000100000800006000040000200000msg/s1) 压测命令模板SMIPC.Benchmark.exe rounds payload_bytes[batch_size][threads]推荐至少覆盖以下场景单线程50000 64 1 1单线程50000 256 1 1单线程50000 1024 1 1批处理30000 64 8 1多线程50000 64 1 42) 测试环境信息模板[Hardware] CPU Model : e.g. Intel Core i7-12700H / AMD Ryzen 7 7840H CPU Cores : physical/logical, e.g. 6P8E / 20 threads CPU Frequency : base/turbo, and whether fixed frequency was used Memory : size speed, e.g. 32GB DDR5-5600 Storage : SSD model, optional [OS] OS Version : e.g. Windows 10 22H2 build xxxx Background Load: idle / moderate / heavy [Build] Solution/Target: e.g. SMIPC.sln / x64 Release Compiler : MSVC version Optimization : /O2, LTCG on/off, debug symbols on/off Runtime Library : /MD or /MT [Power] Power Mode : Best performance / Balanced / Power saver Power Plan : Windows power plan name Thermal State : normal / throttling observed [Benchmark Config] Executable : path to SMIPC.Benchmark.exe Rounds/Payload : exact args Batch/Threads : exact args Run Count : e.g. 3 runs, take median文档API 帮助文档业务场景模板事件码分配规范模板

更多文章