Оптимизация программ на C++. Проверенные методы повышения производительности
В современном быстром мире производительность программы является для клиентов таким же важным свойством, как и ее функциональные возможности. В данном практическом руководстве изложены основные принципы производительности, которые позволяют разработчикам оптимизировать программы на языке C++. Вы узнаете, как писать код, который воплощает наилучшие практики проектирования C++, работает быстрее и потребляет меньше ресурсов на любом компьютере — будь то часы, телефон, рабочая станция, суперкомпьютер или охватывающая весь земной шар сеть серверов.
Автор книги на нескольких примерах запущенного кода демонстрирует, как применять описанные принципы для постепенного улучшения существующих программ, чтобы привести их в соответствие самым высоким требованиям заказчика в отношении быстродействия и пропускной способности. Вы по достоинству оцените советы, приведенные в этой книге, когда услышите от коллеги "Не может быть! Кто и как сумел это сделать?"
- Обнаружение узких мест программы с помощью профилировщика и программных таймеров
- Проведение экспериментов по измерению повышения производительности в связи с изменением кода
- Оптимизация использования динамически выделяемой памяти
- Повышение производительности циклов и функций
- Ускорение обработки строк
- Применение эффективных алгоритмов и шаблонов оптимизации
- Сильные и слабые стороны контейнеров C++
- Оптимизирующий взгляд на поиск и сортировку
- Эффективное использование потоков ввода-вывода C++
- Эффективное использование многопоточности C++
"Рог изобилия полезных советов - своевременных, иногда анекдотичных и всегда в точку. Справочник, показывающий новое лицо C++".
— Джерри Тан, старший программист в The Depository Trust & Clearing Corporation
Об авторе:
Курт Гантерот, программист более чем с 35-летним стажем, четверть века занимается разработкой высокопроизводительного кода на C++.
Разрабатывал программы для Windows, Linux и встраиваемых устройств. Живет в Сиэттле, штат Вашингтон.
Предисловие 17
Глава 1. Обзор оптимизации 23
Глава 2. Оптимизация, влияющая на поведение компьютера 37
Глава 3. Измерение производительности 49
Глава 4. Оптимизация использования строк 91
Глава 5. Оптимизация алгоритмов 113
Глава 6. Оптимизация переменных в динамической памяти 131
Глава 7. Оптимизация инструкций 173
Глава 8. Использование лучших библиотек 213
Глава 9. Оптимизация сортировки и поиска 229
Глава 10. Оптимизация структур данных 259
Глава 11. Оптимизация ввода-вывода 293
Глава 12. Оптимизация параллельности 307
Глава 13. Оптимизация управления памятью 353
Предметный указатель 387