hero bg
hero bg

С++ Zero Cost
Conf 2025

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

Запись трансляции

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

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

 

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

Программа

12:00
Онлайн + офлайн
RU
Открытие конференции
Ольга Зайкова
Руководитель группы автоматической генерации рекламы Яндекс
Алексей Кузнецов
Руководитель разработки RnD направления AI VK
Открытие конференции

12:10
Онлайн + офлайн
RU
Hardening: текущий статус и перспективы развития
Роман Русяев
Team Lead компиляторного направления
Юрий Грибов
Разработчик
Hardening: текущий статус и перспективы развития

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

13:00 — 14:00
Офлайн
RU
Воркшопная
Воркшоп по Perforator
Павел Гуськов
Разработчик в команде Perforator
Воркшоп по Perforator

Perforator — система непрерывного профилирования (continuous profiling), которую мы используем внутри Яндекса для анализа производительности большинства сервисов. Исходный код системы и инфраструктура для развёртывания своей инсталляции Perforator на кластере Kubernetes выложена в опенсорс. На воркшопе покажем как работает эта система и как можно её попробовать локально или развернуть у себя. Разберём как вообще можно анализировать исполнение программ с помощью профилировщиков. Обсудим базовое объяснение работы сэмплирующих профилировщиков, расскажем немножко про то, что мы умеем мониторить: циклы CPU, реальное время — wall time и прочее

А ещё поговорим про:

  • Способы использования Perforator — локальный запуск и поднятие своей инсталляции постоянного профилирования;
  • Использование консольной утилиты perforator record;
  • Способы визуализации исполнения программы: Flamegraph, Top, Side-by-Side, навигация по данным форматам;
  • UI Perforator — как смотреть и анализировать профили;
  • Performance-сравнение различных версией программы через Diff Flamegraph.

И разыграем настоящий перфоратор среди участников 🙂

Вход свободный, записываться заранее не нужно

13:10
Онлайн + офлайн
RU
JSON in C++: serialization
Павел Новиков
С++-разработчик
JSON in C++: serialization

Коротенький рассказ про сериализацию JSON вдогонку к прошлогоднему докладу про экранирование строк. Очень быстро пройдёмся по экранированию строк как запчасти сериализации, и зачем там валидация UTF-8 (вспомним про продолб и драму вокруг экранирования строк в PostgreSQL).

Посмотрим на сериализацию в JSON и коснёмся:

  • способов обхода элементов JSON-документа с учётом рекурсии;
  • нюанса при сериализации чисел с плавающей точкой;
  • обработки ошибок и нюансов типов исключений (в контексте сериализации строк);
  • сериализации элементов из неупорядоченного словаря (ассоциативного контейнера) в отсортированном порядке. И ещё немного.

13:50
Обед
14:00 — 17:00
Офлайн
RU
Лаундж Городских сервисов
Вайбкодим с userver
Антон Полухин
Руководитель группы разработки общих компонент Техплатформа Городских сервисов Яндекса
Вайбкодим с userver

Вход свободный, записываться заранее не нужно

userver — open source фреймворк, разрабатываемый в Техплатформе Городских сервисов Яндекса, который позволяет быстро создавать эффективные микросервисы на языке C++. На вайбкодинге мы будем решать задачки на userver вместе с AI-ассистентами и посмотрим, как они работают с C++.

14:40
Онлайн + офлайн
RU
Что такое зависимости, и с чем их едят в CMake, Meson, Conan, vcpkg и др.
Алексей Горгуров
Старший разработчик
Что такое зависимости, и с чем их едят в CMake, Meson, Conan, vcpkg и др.

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

15:30
Онлайн + офлайн
RU
Алиасинг памяти в компиляторе и в вашей программе
Константин Владимиров
Руководитель отдела компиляторов и инструментов разработки Syntacore
Владислав Белов
Инженер-программист отдела компиляторов и инструментов разработки Syntacore
Алиасинг памяти в компиляторе и в вашей программе

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

16:20
Кофе-брейк
17:00 — 19:00
Офлайн
RU
Лаундж Городских сервисов
Case Lab: Observability надёжности
Вадим Мартынов
Руководитель платформы надёжности, Яндекс Go
Case Lab: Observability надёжности

Записаться можно будет на стойке регистрации и в зоне Городских сервисов

В интерактивном формате решим практические задачи из опыта Городских сервисов Яндекса. Разделимся на команды и вместе с модераторами будем решать кейс по повышению доступности микросервисного приложения. Подойдёт тем, кто интересуется SRE и устойчивостью сервисов и хочет делать стабильные надёжные приложения.

17:10
Онлайн + офлайн
RU
Performance Puzzlers
Сергей Слотин
С++-эксперт
Performance Puzzlers
Интерактивные задачи по низкоуровневой производительности: пайплайны, ветвления, порты, арифметика, контракты, векторизация и профилировщики. Чем это всё может помочь программисту — на живых примерах и экспериментах.
18:00
Онлайн + офлайн
RU
C++20 Модули — практическое внедрение
Антон Полухин
Руководитель группы разработки общих компонент Техплатформа Городских сервисов Яндекса
C++20 Модули — практическое внедрение
Есть достаточно больше количество рассказов о том, как написать C++20 модуль для нового проекта, а со старыми тогда как быть? Разберём, как использовать C++20 модули в больших существующих проектах с поддержкой старых стандартов, на примерах Boost, libstdc++ и libc++.
18:50
Онлайн + офлайн
RU
Закрытие конференции
Ольга Зайкова
Руководитель разработки ecom-проектов рекламыЯндекс
Алексей Кузнецов
Руководитель разработки RnD направления AI VK
Закрытие конференции

19:00
Афтепати
11:00
Онлайн + офлайн
RU
Открытие конференции
Георгий Осипов
Руководитель команды разработки курьерского продукта Яндекс Лавка
Антон Коваленко
Руководитель проектного офиса YDB Яндекс
Открытие конференции

11:10
Онлайн + офлайн
RU
Векторизация 2025
Андрей Аксёнов
Руководитель инфры поиска Авито
Векторизация 2025

На дворе 2025-й: Clang 20, GCC 15, LLM в каждом тостере — а в проде всё ещё CentOS 6. Автовекторизация стала заметно умнее, но можно ли уже полностью положиться на компилятор? Спойлер: не всегда. В докладе — живые примеры, где векторизация действительно работает отлично, а где не очень и где приходится писать руками (включая HNSW, scalar quantization и даже sgemm() на ассемблере). А ещё — про dynamic dispatch, AVX-512, Facebook, BLIS, stdlib, function pointer и немного OpenMP.

Ответ на главный вопрос будет, но не однозначный.

12:00
Онлайн + офлайн
ENG
Hot and cold memory optimizations in TCMalloc
Алексей Веселовский
Senior C++ developer
Hot and cold memory optimizations in TCMalloc

В менеджере памяти TCMalloc (том, который absel tcmalloc, а не часть perftools) появилась новая фича, позволяющая ускорить работу с выделенной памятью: хинты hot_cold для new/malloc. Разберёмся, почему это появилось, как связано с LLVM MemProf, как реализовано в TCMalloc, как это работает и не работает, какое и за счёт чего может дать ускорение и можно ли применить фичу без TCMalloc.

12:50
Обед
13:40
Онлайн + офлайн
RU
С++20 vs C в роботах. Битва за ресурсы, абстракции и безопасность.
Арсентий Гусев
Руководитель группы Сенсоров и Актуаторов Яндекс Роботикс
С++20 vs C в роботах. Битва за ресурсы, абстракции и безопасность.
Что выбирают инженеры в современных embedded-системах: абстракции C++ или контроль C? Сравниваем перформанс, выразительность, безопасность и ограничения — от концептов до препроцессора.
14:30
Онлайн + офлайн
ENG
Locks for lightweight threads
Виталий Аксенов
Лектор University of London
Locks for lightweight threads
Традиционные мьютексы не дружат с лёгкими потоками (fibers, coroutines). Обсудим, почему возникают deadlock’и, как это лечится и как реализовать универсальные блокировки для userver, argobots и boost::fibers.
15:20
Кофе-брейк
15:50
Онлайн + офлайн
RU
Быстрые и приближённые ответы
Артур Соловьев
Team Lead, NDA
Быстрые и приближённые ответы

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

16:40
Онлайн + офлайн
RU
Разработка под GPU: боли, страдания, best practice
Александр Боргардт
OpenSource enthusiastotterstax
Разработка под GPU: боли, страдания, best practice
Если вы хоть раз писали под GPU, то знаете: проблемы повторяются. От архитектуры к архитектуре, от проекта к проекту. В докладе — реальные паттерны, антипаттерны и подводные камни, которые всплывают на всех GPU снова и снова.
17:30
Онлайн + офлайн
RU
Закрытие конференции
Георгий Осипов
Руководитель команды разработки курьерского продукта Яндекс Лавка
Антон Коваленко
Руководитель проектного офиса YDB Яндекс
Закрытие конференции

17:40
Афтепати
16:50
Офлайн
RU
Открытие конференции
Павел Иванцов
Ведущий разработчик Городские сервисы Яндекc Доставка
Открытие конференции

17:00
Офлайн
RU
Мьютексы для лёгких потоков
Тарас Скаженик
Аспирант Университета ИТМО, старший разработчик поисковой платформы Ozon
Мьютексы для лёгких потоков

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

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

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

17:00 — 19:00
Офлайн
RU
Караоке зал
Case Lab: Observability надёжности
Case Lab: Observability надёжности

Записаться можно будет на стойке регистрации

В интерактивном формате решим практические задачи из опыта Городских сервисов Яндекса. Разделимся на команды и вместе с модераторами будем решать кейс по повышению доступности микросервисного приложения. Подойдёт тем, кто интересуется SRE и устойчивостью сервисов и хочет делать стабильные надёжные приложения.

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

Даже в простой математике есть красивые идеи. А в C++ всегда были и будут шаблоны, которые являются сложным самостоятельным подъязыком C++. Совместим приятное с полезным и попробуем решить спектр математических задач в общем виде на компиляции!

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

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

19:30
Афтепати
Ольга Зайкова
Руководитель разработки ecom-проектов рекламыЯндекс
Руководит разработкой автоматической генерации рекламы в Яндексе, уже 5 лет делает сервис быстрее и надёжнее. Разрабатывает систему, которая в течение суток обрабатывает миллиарды товаров со всего интернета и превращает их в рекламные объявления. Благодаря современному С++ и алгоритмическим оптимизациям у неё получилось соединить потоковую обработку миллиардов объектов на фреймворке BigRT и тяжёлые GPU-вычисления: для генерации используются не только CPU-intensive-алгоритмы, но и тяжёлые нейросети YandexGPT. Вела курс алгоритмов в НИУ ВШЭ у первокурсников.
Алексей Кузнецов
Руководитель разработки RnD направления AI VK
Роман Русяев
Team Lead компиляторного направления
Разработчик компиляторов для различных аппаратных архитектур.
Юрий Грибов
Разработчик
Разработчик и фанат системного ПО (компиляторов, рантаймов, инструментов верификации и т. п.).
Павел Новиков
С++-эксперт
Выпускник МГТУ имени Н. Э. Баумана по направлению «Ракетостроение».

Любит C++ и умеет его готовить. В зоне интересов — метапрограммирование, многопоточное и асинхронное программирование. Энтузиаст распространения корутин.

Константин Владимиров
Руководитель отдела компиляторов и инструментов разработки Syntacore
Работает над компиляторами с 2010 года. Сейчас — над компилятором для RISC-V в Syntacore.
Антон Полухин
Руководитель группы разработки общих компонент в Техплатформе Городских сервисов Яндекса
Представитель России в Международной рабочей группе по стандартизации 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

FAQ

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

Sat Aug 02 2025 19:07:54 GMT+0300 (Moscow Standard Time)