Український розробник представив бібліотеку Corundum HFT для швидкої міжпроцесної взаємодії

Користувач Reddit SIIMUCH, який є Embedded Developer та Software Engineer, створив бібліотеку Corundum HFT для надшвидкої міжпроцесної взаємодії (IPC) у Linux. Ця бібліотека демонструє продуктивність, що перевищує стандартні рішення ОС у сотні разів.

Причини створення бібліотеки

Розробник прагнув оптимізувати передачу високочастотної телеметрії, зокрема для швидкого зв’язку між фоновим демоном-монітором та графічним інтерфейсом (GUI). Традиційні методи, такі як сокети, потребують постійного копіювання пам’яті через ядро ОС, що викликає затримки при високих навантаженнях.

Принципи роботи Corundum HFT

Бібліотека позбавлена недоліків традиційних рішень завдяки своїй архітектурі. Вона використовує спільну пам’ять через сегмент shm_open, де писар формує повідомлення без додаткових копіювань. Використання бар'єрів пам’яті виключає важкі мьютекси, а гарячий шлях складається з кількох inline-функцій.

Продуктивність та особливості

Затримка в одну сторону становить лише 25–75 наносекунд, що робить бібліотеку до 800 разів швидшою за традиційні пайпи. Технічні особливості включають:

  • одиниця буфера для схеми «один писар — один читач»;
  • змінна довжина записів, вирівняних на 8 байтів;
  • можливість обробки кількох записів одночасно;
  • перевірка заголовка запису для захисту від помилок;
  • ядро написане на C11 з обгорткою для C++17.

Також доступні інструменти corundum-inspect для перевірки буфера та corundum-bench для порівняння продуктивності. Проєкт є відкритим, має тестове покриття та документацію, доступну на GitHub.


Джерело: dev.ua (https://dev.ua/news/corundum-hft-1794472304)

Пошук

Закрити