Владислав Шпилевой — Алгоритм массово-параллельной работы с сокетами для C++
                        
                        Подробнее о конференции C++ Russia: https://jrg.su/9Sszhd
 — — Скачать презентацию с сайта C++ Russia — https://jrg.su/zRxeXN
  Владиславу посчастливилось работать в проектах, где было критически важно максимизировать пропускную способность сетевого кода, минимизировать задержку и эффективно масштабироваться на ядрах процессора через многопоточность. Boost::asio — фактически стандарт для сетевого кода на C++, но в редких случаях он недоступен или недостаточен по разным причинам: — Boost может быть недоступен на некоторых нишевых платформах (например, на игровых консолях). — Компания уже имеет собственную "все-в-одном" библиотеку и избегает крупных внешних зависимостей, таких как boost. — Производительность boost::asio под нагрузкой вызывает вопросы, а исходный код бывает труден для понимания.  На одном из проектов пришлось искать альтернативу boost::asio по всем этим причинам. В результате спикер разработал новый алгоритм планирования задач общего назначения на С++ и построил вокруг него сетевую библиотеку.   В докладе он рассказал про: — Совершенно справедливое равномерное распределение задач между потоками, позволяющее плавно масштабироваться на много ядер CPU. — Поддержку C++20 корутин — можно писать линейный асинхронный код. — Бенчмарки — воспроизводимые и автоматические. — Формальную корректность — алгоритм планирования задач верифицирован с помощью TLA+. — Простоту — алгоритм легко понять и даже портировать на другие языки, помимо C++.  Проект в открытом доступе: https://github.com/Gerold103/serverbox.
    
                    
                    
Смотрите также
 
  
            
         
  
             
  
             
  
             
  
             
  
             
  
            ![видео: Цепи Маркова — математика предсказаний [Veritasium] картинка: Цепи Маркова — математика предсказаний [Veritasium]](https://i.ytimg.com/vi/QI7oUwNrQ34/mqdefault.jpg)