Искусство написания эффективных программ — Fedor Pikus — обложка книги
446 страниц
C++
PDF
4.5

Искусство написания эффективных программ

Освойте высокопроизводительное программирование на C++

Автор:

Год:

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

Введение

Книга «The Art of Writing Efficient Programs» (в русском переводе — «Искусство написания эффективных программ») авторства Фёдора Пикуса — это не просто очередной учебник по C++. Это глубокое погружение в мир производительности, оптимизации и архитектурных решений, которые превращают обычный код в высокоэффективный инструмент. Выпущенная в 2021 году издательством Packt, книга объёмом 446 страниц стала настольным руководством для многих разработчиков, стремящихся выжать максимум из современного оборудования.

Фёдор Пикус — признанный эксперт в области высокопроизводительных вычислений, работавший в Google и других технологических гигантах. Его опыт и практический подход к решению проблем производительности делают эту книгу уникальной. В отличие от многих абстрактных теоретических трудов, Пикус предлагает конкретные, проверенные на практике методики, подкреплённые примерами на C++.

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

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

Основные темы, рассматриваемые в книге:

  • Измерение производительности: как правильно профилировать код, интерпретировать результаты и находить узкие места.
  • Оптимизация памяти: кэш-память, выравнивание данных, локальность ссылок, работа с динамической памятью.
  • Параллелизм и многопоточность: эффективное использование потоков, синхронизация, избегание гонок данных и deadlock'ов.
  • Оптимизация алгоритмов: выбор правильных структур данных, алгоритмическая сложность и её влияние на реальную производительность.
  • Векторизация и SIMD: использование инструкций процессора для параллельной обработки данных.
  • Работа с компилятором: как помочь компилятору генерировать более быстрый код, ключи оптимизации, инлайнинг.
  • Проектирование для производительности: архитектурные паттерны, которые изначально закладывают высокую скорость работы.

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

Книга рассчитана на разработчиков, уже имеющих опыт программирования на C++ (или другом системном языке) и желающих перейти на новый уровень — уровень создания по-настоящему быстрых и эффективных приложений. Она будет полезна:

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

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

После прочтения книги читатель сможет:

  • Грамотно оценивать производительность своего кода с помощью профилировщиков (perf, Valgrind, Google Benchmark).
  • Понимать, как работает кэш-память процессора, и писать код, максимально её использующий.
  • Эффективно управлять памятью, избегая фрагментации и лишних аллокаций.
  • Писать безопасный и быстрый многопоточный код, используя современные примитивы синхронизации.
  • Применять SIMD-инструкции для ускорения вычислений в 2-4 раза без потери читаемости кода.
  • Выбирать оптимальные структуры данных (std::vector vs std::list, хэш-таблицы, деревья) под конкретную задачу.
  • Использовать фичи C++17/20 (например, std::optional, std::variant, constexpr) для повышения производительности.
  • Проектировать архитектуру приложения, которая изначально ориентирована на высокую скорость работы.

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

Книга Фёдора Пикуса выделяется на фоне других изданий по оптимизации благодаря нескольким ключевым особенностям:

  • Практическая направленность: каждая глава содержит множество примеров кода, которые можно сразу проверить и адаптировать под свои проекты.
  • Глубокое понимание «железа»: автор не просто даёт рецепты, а объясняет, почему тот или иной подход работает быстрее, опираясь на архитектуру современных процессоров и памяти.
  • Современность: книга использует стандарты C++17 и C++20, что делает её актуальной для сегодняшнего дня.
  • Структурированность: материал подаётся от простого к сложному, с чётким разделением на темы. Каждая глава завершается резюме и вопросами для самопроверки.
  • Честность: автор не обещает «серебряной пули», а учит мыслить критически, измерять и принимать обоснованные решения.

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

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

В заключение, «The Art of Writing Efficient Programs» — это обязательное чтение для любого серьёзного C++ разработчика. Это не просто книга, а руководство к действию, которое поможет вам писать код, который не только работает, но и работает максимально эффективно.

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