hero bg
hero bg

С++ Zero Cost
Conf 2025

Москва, Санкт-Петербург, Белград 2 августа

От инженеров для инженеров

Практикующие разработчики на C++ из ведущих компаний поделятся своими знаниями, представят прикладные доклады и расскажут о реальных кейсах, подкреплённых метриками.

 

Конференция пройдёт в двух странах и трёх городах: офлайн и онлайн в Москве и Белграде, а в Санкт‑Петербурге будет только офлайн‑программа с активностями.

Программа

12:00
Сбор гостей
12:20
Hardening: текущий статус и перспективы развития
Роман Русяев
Team Lead компиляторного направления Huawei
Юрий Грибов
Разработчик Huawei
Hardening: текущий статус и перспективы развития

Современные тулчейны предлагают множество средств для поиска ошибок на фазе QA (различные санитайзеры, фаззинг, property-based-тестирование и т. п.). Но для критического программного обеспечения защита от UB требуется и в проде. Такая защита (т. н. hardening) должна быть достаточно полной, чтобы предотвращать наиболее частые уязвимости, и достаточно дешёвой, чтобы не влиять заметно на производительность. В докладе расскажем о средствах hardening, предоставляемых современными тулчейнами (ASLR, проверки Glibc и STL и т. д.), и их влиянии на развитие языка C++.

13:00
Цена абстракции std::simd
Василий Рамаданов
Cтарший инженер-программист Yadro
Цена абстракции std::simd

Std::simd обещает zero-cost-векторизацию. Но насколько это правда на практике? Разберём поведение std::simd на x86 и ARM: что мы теряем (или нет), абстрагируясь от конкретной архитектуры.

13:50
Перерыв на кофе-брейк
14:20
Алиасинг памяти в компиляторе и в вашей программе
Константин Владимиров
Руководитель отдела компиляторов и инструментов разработки Syntacore
Владислав Белов
Инженер-программист отдела компиляторов и инструментов разработки Syntacore
Алиасинг памяти в компиляторе и в вашей программе

Строгий алиасинг, restrict, оптимизации, которые от них зависят, и неожиданные нюансы поведения. Разбираемся, как это влияет на производительность, и в чём сложности поддержки в компиляторах и в стандарте C++.

15:00
Что такое зависимости, и с чем их едят в CMake, Meson, Conan, vcpkg и др.
Алексей Горгуров
Старший разработчик
Что такое зависимости, и с чем их едят в CMake, Meson, Conan, vcpkg и др.

Как C++ проекты подключали внешние библиотеки раньше — и как делают это сейчас. Разберём системные зависимости через pkg-config, магию find_package () в CMake и директиву dependency () в Meson. Посмотрим, как conan и vcpkg меняют подход к сборке, и заглянем в будущее: CPS как новый стандарт для кросс-языковых зависимостей.

16:00
C++20 Модули — практическое внедрение
Антон Полухин
Руководитель группы разработки общих компонент Техплатформа Городских сервисов Яндекса
C++20 Модули — практическое внедрение
Есть достаточно больше количество рассказов о том, как написать C++20 модуль для нового проекта, а со старыми тогда как быть? Разберём, как использовать C++20 модули в больших существующих проектах с поддержкой старых стандартов, на примерах Boost, libstdc++ и libc++.
17:00
Performance Puzzlers
Сергей Слотин
С++-эксперт
Performance Puzzlers
Информация дополняется
12:00
Сбор гостей
12:20
Locks for lightweight threads
Виталий Аксенов
Лектор, University of London
Locks for lightweight threads

Recently, lightweight threads have gained significant popularity in C++, with libraries such as Userver, Argobots, and Boost:fibers leading the way. However, using traditional concurrency primitives like mutexes or locks with these lightweight threads can pose challenges.

For instance, consider a scenario involving a lock that employs active waiting techniques, such as a test-and-set lock. When a thread yields and suspends while in a critical section, all currently active lightweight threads can attempt to acquire the lock without suspending themselves. This behavior can result in deadlock, as the active threads will never be able to acquire the lock since the suspended thread cannot release it.

Due to these challenges, existing lock implementations need to be updated to function correctly in environments with lightweight threads. In this talk, we will explore various approaches to transforming state-of-the-art locks. These new implementations will support all libraries that utilize lightweight threading capabilities and provide a specific interface. To demonstrate the versatility of our approach, we will present experiments using three lightweight thread libraries: Userver, Argobots, and Boost:fibers.

13:00
Векторизация 2025
Андрей Аксёнов
Руководитель инфры поиска Авито
Векторизация 2025

Информация дополняется

13:50
Перерыв на кофе-брейк
14:20
Hot and cold memory optimizations in TCMalloc
Алексей Веселовский
Senior C++ developer Align Technology
Hot and cold memory optimizations in TCMalloc

Информация дополняется

15:00
Быстрые и приближённые ответы
Артур Соловьев
Team Lead NDA Trading
Быстрые и приближённые ответы

Вероятностные структуры данных — как они работают и где реально применяются: от bloom filter до hyperloglog. Кейсами послужат задачи из HFT, дэдупликации, подсчёта уникальных объектов и оценки задержек.

16:00
С++20 vs C в роботах. Битва за ресурсы, абстракции и безопасность.
Арсентий Гусев
Руководитель группы Сенсоров и Актуаторов Яндекс.Роботикс
С++20 vs C в роботах. Битва за ресурсы, абстракции и безопасность.
Что выбирают инженеры в современных embedded-системах: абстракции C++ или контроль C? Сравниваем перформанс, выразительность, безопасность и ограничения — от концептов до препроцессора.
17:00
Optimizing NVIDIA-oriented Algorithms for AMD
Александр Боргардт
CTО otterstax
Optimizing NVIDIA-oriented Algorithms for AMD
Информация дополняется
12:00
Сбор гостей
12:20
Мьютексы для лёгких потоков
Тарас Скаженик
Аспирант Университета ИТМО, старший разработчик поисковой платформы Ozon
Мьютексы для лёгких потоков

В последнее время лёгкие потоки приобрели значительную популярность в C++. Их реализации представлены во множестве библиотек. Выделяющимся представителями можно считать такие проекты, как Userver, Argobots и Boost: fibers. Однако использование традиционных примитивов параллелизма, таких как мьютексы или блокировки, с этим видом потоков может создавать проблемы.

Рассмотрим сценарий работы простой реализации мьютекса, использующей активное ожидание, например, Test-And-Set. Поток, завладевший такой блокировкой, может приостановиться и передать управление планировщику, находясь в критической секции. При этом все активные в данный момент лёгкие потоки могут попытаться получить блокировку, не приостанавливая себя. В результате, такое поведение может привести к взаимной блокировке, поскольку активные потоки никогда не смогут получить блокировку, а приостановленный поток не сможет её освободить.

Из-за описанных проблем существующие реализации блокировок необходимо обновить для корректной работы в средах с лёгкими потоками. В этом докладе мы рассмотрим различные подходы к преобразованию современных блокировок. Покажем как удалось реализовать общий интерфейс, позволяющий использовать одни и те же примитивы совместно с различными библиотеками лёгких потоков. Чтобы продемонстрировать универсальность нашего подхода, мы представим эксперименты с использованием трёх библиотек: Userver, Argobots и Boost: fibers.

13:00
i, j, k и шаблоны: вспоминаем линейную алгебру
Ваня Ходор
Руководитель бэкенда каталога Яндекс Лавка
i, j, k и шаблоны: вспоминаем линейную алгебру

Информация дополняется

13:50
Перерыв на кофе-брейк
14:20
Verifying concurrent data structures in C++
Кирилл Гарманов
Разработчик в команде Core Infrastructure VK
Илья Кокорин
Старший разработчик в отделе инфраструктуры баз данных VK
LTest: верификатор конкурентных структур данных на C++

Поговорим о том, с какими проблемами разработчики сталкиваются, когда пишут конкурентные структуры данных и как значительно облегчить боль от проверки и отладки конкурентного кода. Представим инструмент, используемый в команде баз данных VK, для проверки конкурентного кода и расскажем, какие идеи и алгоритмы позволяют ему работать.

Роман Русяев
Team Lead компиляторного направления Huawei
Разработчик компиляторов для различных аппаратных архитектур.
Юрий Грибов
Разработчик Huawei
Разработчик и фанат системного ПО (компиляторов, рантаймов, инструментов верификации и т. п.).
Василий Рамаданов
Cтарший инженер-программист YADRO
Занимается разработкой real-time приложений на C++ для обработки радиосигналов с 2017 г. В послужном списке есть как почти стартапы, так и телеком гиганты как Nokia, Есть опыт в Automotive который получил в Luxsoft. Также выступает на конференциях по C++. Сейчас занимается разработкой базовой станции в YADRO.
Константин Владимиров
Руководитель отдела компиляторов и инструментов разработки Syntacore
Работает над компиляторами с 2010 года. Сейчас — над компилятором для RISC-V в Syntacore.
Владислав Белов
Инженер-программист отдела компиляторов и инструментов разработки Syntacore
Алексей Горгуров
Старший разработчик
Контрибутит в Open Source, пакетные менеджеры C++ и их базы пакетов, контрибутит в cmake (например, добавил команду cmake_language (EXIT)), (со)автор проползала на stacktrace (в С++23)
Антон Полухин
Руководитель группы разработки общих компонент в Техплатформе Городских сервисов Яндекса
Представитель России в Международной рабочей группе по стандартизации C++ (WG21 ISO). Автор многих принятых предложений к стандарту языка C++.

Председатель Российской рабочей группы по стандартизации С++. Разрабатывает и поддерживает стандартную библиотеку GCC, библиотеки Boost. Автор Boost-библиотек PFR, TypeIndex, DLL, StackTrace и активный maintainer Any, Conversion, LexicalCast, Variant.

Автор книги Boost C++ Application Development Cookbook.

Сергей Фёдоров
С++-эксперт
Пишет на C++ с 1999 года. Делал разное: от автоматизации хлебозаводов и крематориев до разработки банковского и биржевого ПО и геймдева. Руководил разработкой складских роботов Yango. Любит опенсорс и головоломные задачи.
Сергей Видюк
Старший разработчик в Yandex Infrastructure
Занимается разработкой системы сборки для монорепозитория Яндекса. За плечами ещё 10 лет разработки мобильных картографических приложений (NAVITEL, 2ГИС). В hobby time разрабатывает собственную библиотеку future/promise portable_concurrency.

Любит C++, большие ациклические графы и прятать мьютексы от бизнес-логики в многопоточном коде.

Александр Голубев
Руководитель службы разработки инфраструктуры назначения исполнителя в Яндекс Доставке
Более 20 лет в разработке высоконагруженных систем с глубокой экспертизой в C++. Прошёл путь от разработчика до руководителя направлений в ведущих IT-компаниях (Яндекс, Kaspersky Lab, VK).
Елизавета Грейм
Backend DevRel в Яндексе
Более 3 лет развивает профессиональные комьюнити в российских и зарубежных бигтехах.

Строит сообщества, организовывает мероприятия и работает со спикерами.

Михаил Борисов
Ведущий разработчик в Яндексе
Больше 10 лет пишет на С++ в Яндексе. Занимался обработкой данных, нагруженными бэкендами в рекламе, прошивками устройств. Сейчас занимается бэкендом и инфраструктурой устройств с Алисой. Интересуется устройством компиляторов, любит дебажить странные проблемы.

Как добраться

Центр событий РБК, Космодамианская наб., 52, стр. 7
Хаб «Сербская Роза», бул. Войводы Бойовича, 12
Бар-клуб Commode, Невский проспект, 47

Приходите,
будет интересно!

Tue Jul 15 2025 10:25:30 GMT+0300 (Moscow Standard Time)