cpp-ipc (libipc) - Bibliothèque C++ IPC
Une bibliothèque de communication inter-processus hautes performances utilisant la mémoire partagée sous Linux/Windows.
- Les compilateurs prenant en charge C++17 sont recommandés (msvc-2017/gcc-7/clang-4)
- Aucune autre dépendance sauf STL.
- Seul un système de verrouillage rotatif léger ou sans verrouillage est utilisé.
- Un tableau circulaire est utilisé comme structure de données soulignée.
-
ipc::route prend en charge la lecture unique et l'écriture multiple. ipc::channel prend en charge plusieurs lectures et écritures. ( Remarque : actuellement, un canal prend en charge jusqu'à 32 récepteurs, mais il n'y a pas de limite pour l'expéditeur. ) - La diffusion est utilisée par défaut, mais l'utilisateur peut choisir n'importe quelle combinaison de lecture/écriture.
- Pas d'attente aveugle pendant une longue période. (Le sémaphore sera utilisé après un certain nombre de tentatives.)
- La méthode d'installation Vcpkg est prise en charge. Par exemple
vcpkg install cpp-ipc
Usage
Voir : Wiki
Performance
| Environnement | Valeur |
|---|
| Appareil | Lenovo ThinkPad T450 |
| Processeur | Intel® Core™ i5-4300U à 2,5 GHz |
| BÉLIER | 16 GB |
| Système d'exploitation | Windows 7 Intégral x64 |
| Compilateur | MSVC2017 15.9.4 |
Tests unitaires & benchmarks : test
Données de performances : performance.xlsx
Référence
- Structures de données sans verrouillage | Dr Dobb
- Encore une autre implémentation d'une file d'attente de tableau circulaire sans verrouillage | CodeProjet
- Sans verrouillage | 匠心十年 - 博客园
- 无锁队列的实现 | Accueil - CoolShell
- Implémentation de variables de condition avec des sémaphores
Système IPC (Linux/Windows, x86/x64/ARM)
- Version C++ 17 de Microsoft (msvc-2017/gcc-7/clang-4)
- 除STL外,无其他依赖
- 无锁(lock-free)或轻量级spin-lock
- 底层数据结构为循环数组 (réseau circulaire)
-
ipc::channel ipc::route route - 默认采用广播模式收发数据,支持用户任意选择读写方案
- 支持超时
- 支持Vcpkg方式安装,如
vcpkg install cpp-ipc
使用方法
Article : Wiki
性能
| 环境 | 值 |
|---|
| 设备 | pour le ThinkPad T450 |
| Processeur | Processeur Core™ i5-4300U à 2,5 GHz |
| 内存 | 16 GB |
| 操作系统 | Windows 7 Intégral x64 |
| 编译器 | MSVC2017 15.9.4 |
Aperçu du Benchmark : test
Nom du produit : performance.xlsx
参考
- Structures de données sans verrouillage | Dr Dobb
- Encore une autre implémentation d'une file d'attente de tableau circulaire sans verrouillage | CodeProjet
- Sans verrouillage | 匠心十年 - 博客园
- 无锁队列的实现 | Accueil - CoolShell
- Implémentation de variables de condition avec des sémaphores