Async-каналы: разбор низкоуровневых примитивов и сравнение реализаций
Тезисы
В сложной системе, состоящей из множества асинхронных задач, не обойтись без каналов. Мы заменили одну библиотеку на другую, и пропускная способность нашей дедуплицирующей файловой системы существенно выросла. Почему? Чем вообще отличаются реализации каналов?

В рамках доклада мы заглянем под капот популярных библиотек (tokio, flume, async-channel), рассмотрим примитивы, необходимые для их реализации: атомики, lock-free структуры данных, futex, thread::park, Waker. Я покажу, почему одни каналы быстрее других и в чем компромиссы, а также поделюсь бенчмарками и примерами кода.

Доклад будет полезен тем, кто интересуется производительностью и низкоуровневыми деталями кода. Слушатели узнают о том, как те или иные решения в реализации примитивов (в частности каналов) влияют на их производительность. Также узнают, чем различаются популярные библиотеки и какую выбрать для своих целей.
В сложной системе, состоящей из множества асинхронных задач, не обойтись без каналов. Мы заменили одну библиотеку на другую, и пропускная способность нашей дедуплицирующей файловой системы существенно выросла. Почему? Чем вообще отличаются реализации каналов?

В рамках доклада мы заглянем под капот популярных библиотек (tokio, flume, async-channel), рассмотрим примитивы, необходимые для их реализации: атомики, lock-free структуры данных, futex, thread::park, Waker. Я покажу, почему одни каналы быстрее других и в чем компромиссы, а также поделюсь бенчмарками и примерами кода.

Доклад будет полезен тем, кто интересуется производительностью и низкоуровневыми деталями кода. Слушатели узнают о том, как те или иные решения в реализации примитивов (в частности каналов) влияют на их производительность. Также узнают, чем различаются популярные библиотеки и какую выбрать для своих целей.
Видеозапись доклада
Появится здесь после конференции
Информация о спикере
Алексей Никашкин
Rust-разработчик, YADRO
Увлекаюсь программированием с детства
Пишу на Rust в свободное время более 6 лет
  • Алексей Никашкин
    Rust-разработчик, YADRO
    Увлекаюсь программированием с детства
    Пишу на Rust в свободное время более 6 лет
Все доклады