Производительность C++ приложений
Оптимизация кода, профилирование и высоконагруженные системы
Краткое содержимое:
Книга «Производительность C++ приложений» — это практическое руководство для разработчиков, которые хотят научиться писать быстрый, эффективный и масштабируемый код на C++. В отличие от академических учебников, эта книга фокусируется на реальных задачах: как найти узкие места, как ускорить работу программы без потери читаемости и как подготовить приложение к работе под высокой нагрузкой.
О чем эта книга?
- Профилирование и бенчмаркинг: Вы узнаете, как правильно измерять производительность с помощью инструментов (perf, Valgrind, Google Benchmark), интерпретировать результаты и находить «бутылочные горлышки».
- Работа с памятью: Эффективное управление памятью, кэш-промахи, аллокаторы, move-семантика и избегание копирования. Разберем, как уменьшить фрагментацию и ускорить доступ к данным.
- Алгоритмы и структуры данных: Как выбрать правильный контейнер (std::vector vs std::list, flat_map, мелкие оптимизации), когда использовать хеш-таблицы, а когда — деревья.
- Многопоточность и конкурентность: Параллельные алгоритмы, синхронизация (мьютексы, атомики, lock-free структуры), пулы потоков и работа с std::async.
- Оптимизация компилятора: Ключевые флаги компиляции (O2, O3, LTO), понимание ассемблерного вывода, инлайнинг и векторизация.
- Реальные примеры: Разбор кода из высоконагруженных систем: игровые движки, финансовые серверы, обработка больших данных.
Для кого эта книга?
- Разработчиков C++ с опытом от 1 года, которые хотят перейти на уровень senior.
- Инженеров, работающих над latency-sensitive системами (торговые платформы, базы данных, игры).
- Тех, кто готовится к собеседованиям в FAANG или продуктовые компании, где требуют глубокого понимания производительности.
Что вы узнаете?
- Как ускорить код в 2-10 раз, не меняя архитектуру.
- Почему «очевидные» оптимизации часто вредят и как этого избежать.
- Как проектировать системы, которые остаются быстрыми при росте нагрузки.
- Современные практики C++17/20 (std::optional, std::variant, концепты) для повышения производительности.
Книга написана живым языком, содержит много листингов, графиков и практических заданий. После её прочтения вы сможете не только писать быстрый код, но и аргументированно защищать свои решения перед коллегами.