Настроить Cookies
Для вашего комфорта и улучшения работы сайта мы используем cookie.
Настроить Cookies
Настройки Cookies
Файлы cookie, необходимые для корректной работы сайта, всегда включены. Другие файлы cookie можно настроить.
Основные файлы cookie
Всегда включены. Эти файлы cookie необходимы для работы веб-сайта и его функций. Их нельзя отключить. Они устанавливаются в ответ на ваши запросы, например, при настройке параметров конфиденциальности, входе в систему или заполнении форм.
Аналитические файлы cookie
Disabled
Эти файлы cookie собирают информацию, которая помогает нам понять, как используются наши веб-сайты, насколько эффективны наши маркетинговые кампании, а также помогает нам персонализировать наши веб-сайты для вас.
Рекламные файлы cookie
Disabled
Эти файлы cookie предоставляют рекламным компаниям информацию о вашей активности в интернете, чтобы помочь им показывать вам более релевантную рекламу или ограничивать количество показов рекламы. Эта информация может быть передана другим рекламным компаниям.
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 лет
Все доклады