Edition |
2nd ed. |
Description |
1 online resource (541 p.) |
Note |
Description based upon print version of record. |
Summary |
C++ High Performance, Second Edition enables you to measure and identify bottlenecks in the code and eradicate them to amplify your application's working speed without compromising the readability of your C++ codebase. |
Contents |
Intro -- Copyright -- Packt Page -- Contributors -- Table of Contents -- Preface -- Chapter 1: A Brief Introduction to C++ -- Why C++? -- Zero-cost abstractions -- Programming languages and machine code abstractions -- Abstractions in other languages -- The zero-overhead principle -- Portability -- Robustness -- C++ of today -- C++ compared with other languages -- Competing languages and performance -- Non-performance-related C++ language features -- Value semantics -- Const correctness -- Object ownership -- Deterministic destruction in C++ -- Avoiding null objects using C++ references |
|
Drawbacks of C++ -- Libraries and compilers used in this book -- Summary -- Chapter 2: Essential C++ Techniques -- Automatic type deduction with the auto keyword -- Using auto in function signatures -- Forwarding the return type using decltype(auto) -- Using auto for variables -- A const reference -- A mutable reference -- A forwarding reference -- Practices for ease of use -- Const propagation for pointers -- Move semantics explained -- Copy-construction, swap, and move -- Copy-constructing an object -- Resource acquisition and the rule of five -- Named variables and rvalues |
|
Default move semantics and the rule of zero -- Rule of zero in a real code base -- A common pitfall -- moving non-resources -- Applying the && modifier to class member functions -- Don't move when copies are elided anyway -- Pass by value when applicable -- Cases where pass-by-value is not applicable -- Moving constructor parameters -- Designing interfaces with error handling -- Contracts -- Class invariants -- Maintaining contracts -- Error handling -- Programming error or runtime error? -- Programming errors (bugs) -- Recoverable runtime errors -- Function objects and lambda expressions |
|
The basic syntax of a C++ lambda -- The capture clause -- Capture by reference versus capture by value -- Similarities between a lambda and a class -- Initializing variables in capture -- Mutating lambda member variables -- Capture all -- Assigning C function pointers to lambdas -- Lambda types -- Lambdas and std::function -- Implementing a simple Button class with std::function -- Performance consideration of std::function -- Generic lambdas -- Summary -- Chapter 3: Analyzing and Measuring Performance -- Asymptotic complexity and big O notation -- Growth rates -- Amortized time complexity |
|
What to measure and how? -- Performance properties -- Speedup of execution time -- Performance counters -- Performance testing -- best practices -- Knowing your code and hot spots -- Instrumentation profilers -- Sampling profilers -- Microbenchmarking -- Amdahl's law -- Pitfalls of microbenchmarking -- A microbenchmark example -- Summary -- Chapter 4: Data Structures -- The properties of computer memory -- The standard library containers -- Sequence containers -- Vectors and arrays -- Deque -- List and forward_list -- The basic_string -- Associative containers -- Ordered sets and maps |
Local Note |
eBooks on EBSCOhost EBSCO eBook Subscription Academic Collection - North America |
Subject |
Application software -- Development.
|
|
C++ (Computer program language)
|
|
Algorithms & data structures. |
|
Programming & scripting languages: general. |
|
Parallel processing. |
|
Computers -- Programming Languages -- C. |
|
Computers -- Programming -- Parallel. |
|
Computers -- Programming -- Algorithms. |
|
Application software -- Development |
|
C++ (Computer program language) |
Added Author |
Sehr, Viktor.
|
|
Garney, Ben.
|
Other Form: |
Print version: Andrist, Bjö C++ High Performance Birmingham : Packt Publishing, Limited,c2020 |
ISBN |
9781839212581 |
|
1839212586 |
|