cpp-ipc (libipc) – C++ IPC-Bibliothek
Eine leistungsstarke Bibliothek für die prozessübergreifende Kommunikation mit gemeinsam genutztem Speicher unter Linux/Windows.
- Compiler mit C++17-Unterstützung werden empfohlen (msvc-2017/gcc-7/clang-4)
- Keine weiteren Abhängigkeiten außer STL.
- Es wird nur Lock-Free oder Lightweight Spin-Lock verwendet.
- Als Unterstreichungsdatenstruktur wird ein kreisförmiges Array verwendet.
-
ipc::route unterstützt einzelnes Lesen und mehrfaches Schreiben. ipc::channel unterstützt mehrere Lese- und Schreibvorgänge. ( Hinweis: Derzeit unterstützt ein Kanal bis zu 32 Empfänger, für den Sender gibt es jedoch keine solche Beschränkung. ) - Standardmäßig wird Broadcasting verwendet, der Benutzer kann jedoch beliebige Lese-/Schreibkombinationen wählen.
- Kein langes blindes Warten. (Semaphor wird nach einer bestimmten Anzahl von Wiederholungsversuchen verwendet.)
- Die Vcpkg-Installationsmethode wird unterstützt. ZB
vcpkg install cpp-ipc
Verwendung
Siehe: Wiki
Leistung
| Umfeld | Wert |
|---|
| Gerät | Lenovo ThinkPad T450 |
| CPU | Intel® Core™ i5-4300U bei 2,5 GHz |
| RAM | 16 GB |
| Betriebssystem | Windows 7 Ultimate x64 |
| Compiler | MSVC 2017 15.9.4 |
Unit- und Benchmark-Tests: Test
Leistungsdaten: performance.xlsx
Referenz
- Sperrfreie Datenstrukturen | Dr. Dobbs
- Noch eine weitere Implementierung einer sperrenfreien kreisförmigen Array-Warteschlange | CodeProjekt
- Lock-Free 编程 | 匠心十年 - 博客园
- 无锁队列的实现 | 酷 壳 - CoolShell
- Bedingungsvariablen mit Semaphoren implementieren
使用共享内存的跨平台(Linux/Windows,x86/x64/ARM)性能IPC通讯库
- Neue Version von C++17 (msvc-2017/gcc-7/clang-4)
- 除STL外,无其他依赖
- 无锁 (lock-free) und Spin-lock
- 底层数据结构为循环数组 (kreisförmige Anordnung)
-
ipc::route , ipc::channel Empfänger, Sender, Sender - 默认采用广播模式收发数据,支持用户任意选择读写方案
- 不会长时间忙等(重试一定次数后会使用信号量进行等待),支持超时
- Wenn Sie Vcpkg verwenden möchten,
vcpkg install cpp-ipc
使用方法
Beschreibung:Wiki
性能
| 环境 | 值 |
|---|
| 设备 | Mehr ThinkPad T450 |
| CPU | 英特尔® Core™ i5-4300U bei 2,5 GHz |
| 内存 | 16 GB |
| 操作系统 | Windows 7 Ultimate x64 |
| 编译器 | MSVC 2017 15.9.4 |
单元测试和Benchmark-Test: Test
Zugriffsquelle: performance.xlsx
参考
- Sperrfreie Datenstrukturen | Dr. Dobbs
- Noch eine weitere Implementierung einer sperrenfreien kreisförmigen Array-Warteschlange | CodeProjekt
- Lock-Free 编程 | 匠心十年 - 博客园
- 无锁队列的实现 | 酷 壳 - CoolShell
- Bedingungsvariablen mit Semaphoren implementieren