Book Image

C++ High Performance - Second Edition

By : Björn Andrist, Viktor Sehr
5 (2)
Book Image

C++ High Performance - Second Edition

5 (2)
By: Björn Andrist, Viktor Sehr

Overview of this book

C++ High Performance, Second Edition guides you through optimizing the performance of your C++ apps. This allows them to run faster and consume fewer resources on the device they're running on without compromising the readability of your codebase. The book begins by introducing the C++ language and some of its modern concepts in brief. Once you are familiar with the fundamentals, you will be ready to measure, identify, and eradicate bottlenecks in your C++ codebase. By following this process, you will gradually improve your style of writing code. The book then explores data structure optimization, memory management, and how it can be used efficiently concerning CPU caches. After laying the foundation, the book trains you to leverage algorithms, ranges, and containers from the standard library to achieve faster execution, write readable code, and use customized iterators. It provides hands-on examples of C++ metaprogramming, coroutines, reflection to reduce boilerplate code, proxy objects to perform optimizations under the hood, concurrent programming, and lock-free data structures. The book concludes with an overview of parallel algorithms. By the end of this book, you will have the ability to use every tool as needed to boost the efficiency of your C++ projects.
Table of Contents (17 chapters)
15
Other Books You May Enjoy
16
Index

Index

Symbols

&& modifier

applying, to class member functions 36

Standard Template Library (STL ) algorithm

searching 167, 168

using 167, 168

A

ABA problem 366

abstractions

in programming languages 2, 3, 4

algorithm library

limitations 174, 176

Algorithm library

sorting algorithms 160

Amdahl's law 467, 468

using 89, 90

amortized time complexity

about 74, 75, 76

arena 221

building 221, 222, 223, 224, 225

fixed-size allocations 221

limited lifetime 222

single-threaded 221

associative containers

about 109, 110

ordered associative containers 110

ordered sets and maps 110

unordered associative containers 110

unordered sets and maps 111

asymptotic computational complexity

about 68, 69, 70, 71, 72, 73

asynchronous tasks 336

testing, with sync_wait() 454

atomic references

using 371, 372

atomic variables 363

auto keyword

used...