cpp-ipc (libipc) - Perpustakaan C++ IPC
Pustaka komunikasi antar-proses berkinerja tinggi menggunakan memori bersama di Linux/Windows.
- Kompiler dengan dukungan C++17 direkomendasikan (msvc-2017/gcc-7/clang-4)
- Tidak ada ketergantungan lain kecuali STL.
- Hanya spin-lock bebas kunci atau ringan yang digunakan.
- Array melingkar digunakan sebagai struktur data yang digarisbawahi.
-
ipc::route
mendukung pembacaan tunggal dan penulisan ganda. ipc::channel
mendukung banyak baca dan tulis. ( Catatan: saat ini, satu saluran mendukung hingga 32 penerima, tetapi tidak ada batasan untuk pengirimnya. ) - Penyiaran digunakan secara default, namun pengguna dapat memilih kombinasi baca/tulis apa pun.
- Tidak perlu menunggu lama. (Semaphore akan digunakan setelah beberapa kali percobaan ulang.)
- Cara instalasi Vcpkg didukung. Misalnya
vcpkg install cpp-ipc
Penggunaan
Lihat: Wiki
Pertunjukan
Lingkungan | Nilai |
---|
Perangkat | Lenovo ThinkPad T450 |
CPU | Intel® Core™ i5-4300U @ 2,5 GHz |
RAM | 16 GB |
sistem operasi | Windows 7 Ultimate x64 |
Penyusun | MSVC 2017 15.9.4 |
Tes unit & benchmark: tes
Data kinerja: kinerja.xlsx
Referensi
- Struktur Data Bebas Kunci | Dr Dobb
- Implementasi lain dari antrian array melingkar bebas kunci | Proyek Kode
- Bebas Kunci 编程 | 匠心十年 - 博客园
- 无锁队列的实现 | 酷 壳 - CoolShell
- Menerapkan Variabel Kondisi dengan Semaphore
Sistem Operasi Linux/Windows,x86/x64/ARM)高性能IPC
- Lihat versi C++17的编译器(msvc-2017/gcc-7/clang-4)
- 除STL外,无其他依赖
- 无锁(bebas kunci)或轻量级pin-lock
- 底层数据结构为循环数组(susunan melingkar)
-
ipc::route
支持单写多读, ipc::channel
支持多写多读【注意:目前同一条通道最多支持32个receiver,sender无限制】 - 默认采用广播模式收发数据,支持用户任意选择读写方案
- 不会长时间忙等(重试一定次数后会使用信号量进行等待),支持超时
- Gunakan
vcpkg install cpp-ipc
使用方法
Deskripsi:Wiki
性能
环境 | 值 |
---|
itu | menggunakan ThinkPad T450 |
CPU | Intel® Core™ i5-4300U @ 2,5 GHz |
内存 | 16 GB |
操作系统 | Windows 7 Ultimate x64 |
编译器 | MSVC 2017 15.9.4 |
单元测试和Benchmark测试: tes
Sumber: performance.xlsx
参考
- Struktur Data Bebas Kunci | Dr Dobb
- Implementasi lain dari antrian array melingkar bebas kunci | Proyek Kode
- Bebas Kunci 编程 | 匠心十年 - 博客园
- 无锁队列的实现 | 酷 壳 - CoolShell
- Menerapkan Variabel Kondisi dengan Semaphore