C++ High Performance. Высокопроизводительные вычисления на C++ — Björn Andrist, Viktor Sehr — обложка книги
538 страниц
C++
PDF
4.5

C++ High Performance. Высокопроизводительные вычисления на C++

Оптимизация и архитектура для быстрого кода

Автор:

Год:

Краткое содержимое:

Введение

Книга C++ High Performance (авторы: Björn Andrist, Viktor Sehr, 2020 год, 538 страниц) — это не очередной учебник по синтаксису языка, а глубокое погружение в искусство написания быстрого и эффективного кода на C++. В мире, где производительность часто является критическим требованием (игры, высоконагруженные серверы, финансовые системы, встраиваемые устройства), умение не просто писать работающий код, а делать его максимально быстрым, становится ключевым навыком. Эта книга предлагает системный подход к оптимизации, начиная от архитектуры приложения и заканчивая низкоуровневыми трюками с процессором.

О чём эта книга?

Книга разделена на три логические части, которые последовательно ведут читателя от общих принципов к конкретным техникам.

Часть 1: Основы производительности

Авторы начинают с фундаментальных понятий: что такое производительность, как её измерять, какие бывают узкие места. Здесь рассматриваются:

  • Профилирование и бенчмаркинг (инструменты: perf, Valgrind, Google Benchmark).
  • Влияние архитектуры процессора (конвейер, кэш, предсказание ветвлений).
  • Оптимизация памяти (локальность данных, выравнивание, пулы).

Часть 2: Продвинутые техники C++

Вторая часть посвящена использованию современных возможностей C++ для повышения производительности:

  • Move-семантика и идеальная передача (perfect forwarding).
  • Вычисления на этапе компиляции (constexpr, шаблоны).
  • Полиморфизм без виртуальных функций (CRTP, std::variant, std::any).
  • Умные указатели и управление ресурсами.

Часть 3: Многопоточность и параллелизм

Заключительная часть — самая объёмная и практическая. Она охватывает:

  • Модели памяти C++ и атомарные операции.
  • Потоки, мьютексы, conditional_variable.
  • Параллельные алгоритмы (std::execution::par).
  • SIMD-инструкции (SSE, AVX) и их использование через интринсики.
  • Асинхронное программирование (std::future, std::async).

Для кого эта книга?

Книга рассчитана на опытных разработчиков C++, которые уже уверенно пишут на языке, но хотят поднять свои навыки на новый уровень. Она будет полезна:

  • Разработчикам игр и графических движков.
  • Инженерам, работающим над высоконагруженными серверами.
  • Специалистам по встраиваемым системам.
  • Всем, кто хочет понять, как работает современный C++ «под капотом».

Что узнает читатель?

После прочтения вы сможете:

  • Правильно выбирать инструменты для профилирования и интерпретировать их результаты.
  • Оптимизировать использование кэша и памяти.
  • Использовать move-семантику и constexpr для ускорения кода.
  • Строить эффективные многопоточные приложения без гонок данных и deadlock’ов.
  • Применять SIMD-инструкции для векторных вычислений.
  • Проектировать архитектуру, которая изначально нацелена на производительность.

Сильные стороны книги

Главное достоинство — практическая направленность. Каждая техника сопровождается реальными примерами кода и бенчмарками, показывающими прирост производительности. Авторы не просто говорят «делайте так», а объясняют почему это работает, опираясь на архитектуру современных процессоров. Книга написана живым языком, сложные концепции (например, модель памяти C++ или SIMD) разбираются очень доходчиво.

Отдельно стоит отметить качество примеров: они не вырваны из контекста, а представляют собой законченные мини-проекты, которые можно сразу применить в своей работе.

Кому рекомендуется?

Однозначно рекомендую эту книгу всем, кто пишет на C++ и хочет, чтобы его код работал максимально быстро. Если вы уже знаете синтаксис, но чувствуете, что упираетесь в потолок производительности — C++ High Performance станет вашим трамплином. Она не для новичков, но для тех, кто готов углубиться в тему, — это одна из лучших книг на рынке.

Рекомендаций