Write code that scales across CPU registers, multi-core, and machine clusters
Key Features
- Explore concurrent programming in C++
- Identify memory management problems
- Use SIMD and STL containers for performance improvement
Book Description
C++ is a highly portable language and can be used to write complex applications and performance-critical code. It has evolved over the last few years to become a modern and expressive language. This book will guide you through optimizing the performance of your C++ apps by allowing them to run faster and consume fewer resources on the device they're running on. The book begins by helping you to identify the bottlenecks in C++. It then moves on to measuring performance, and you'll see how this affects the way you write code. Next, you'll see the importance of data structure optimization and how it can be used efficiently. After that, you'll see which algorithm should be used to achieve faster execution, followed by how to use STL containers. Moving on, you'll learn how to improve memory management in C++. You'll get hands on experience making use of multiple cores to enable more efficient and faster execution. The book ends with a brief overview of utilizing the capabilities of your GPU by using Boost Compute and OpenCL.
What you will learn
- Find out how to use exciting new tools that will help you improve your code
- Identify bottlenecks to optimize your code
- Develop applications that utilize GPU computation
- Reap the benefits of concurrent programming
- Write code that can protect against application errors using error handling
- Use STL containers and algorithms effciently
- Extend your toolbox with Boost containers
- Achieve effcient memory management by using custom memory allocators
Who This Book Is For
If you're a C++ developer looking to improve the speed of your code or simply wanting to take your skills up to the next level, then this book is perfect for you.
Table of Contents
- A Brief Introduction to C++
- Modern C++ concepts
- Measuring performance
- Data structures
- A deeper look at iterators
- STL Algorithms and Beyond
- Memory management
- Meta programming and compile time evaluation
- Proxy objects and lazy evaluation
- Concurrency
- Parallell STL