Optimizing software in C++

An optimization guide for Windows, Linux and Mac platforms

by Agner Fog

DescriptionTable of ContentsDetailsHashtagsReport an issue

Book Description

This is an optimization manual for advanced C++ programmers. This book are not for beginners.

Topics include:
- The choice of platform and operating system.
- Choice of compiler and framework.
- Finding performance bottlenecks.
- The efficiency of different C++ constructs.
- Multi-core systems.
- Parallelization with vector operations.
- CPU dispatching. Efficient container class templates.

This open book is licensed under a Creative Commons License (CC BY-SA). You can download Optimizing software in C++ ebook for free in PDF format (3.0 MB).

Table of Contents

Chapter 1
Introduction
Chapter 2
Choosing the optimal platform
Chapter 3
Finding the biggest time consumers
Chapter 4
Performance and usability
Chapter 5
Choosing the optimal algorithm
Chapter 6
Development process
Chapter 7
The efficiency of different C++ constructs
Chapter 8
Optimizations in the compiler
Chapter 9
Optimizing memory access
Chapter 10
Multithreading
Chapter 11
Out of order execution
Chapter 12
Using vector operations
Chapter 13
Making critical code in multiple versions for different instruction sets
Chapter 14
Specific optimization topics
Chapter 15
Metaprogramming
Chapter 16
Testing speed
Chapter 17
Optimization in embedded systems
Chapter 18
Overview of compiler options
 

Book Details

Subject
Computer Science
Publisher
Self-publishing
Published
2020
Pages
176
Edition
1
Language
English
PDF Size
3.0 MB
License
CC BY-SA

Related Books

Software Innovation
Innovation is the forgotten key to modern systems development - the element that defines the enterprising engineer, the thriving software firm and the cutting edge software application. Traditional forms of technical education pay little attention to creativity - often encouraging overly rationalistic ways of thinking which stifle the ability to in...
Android on x86
Android on x86: an Introduction to Optimizing for IntelĀ® Architecture serves two main purposes. First, it makes the case for adapting your applications onto Intel's x86 architecture, including discussions of the business potential, the changing landscape of the Android marketplace, and the unique challenges and opportunities that arise from x86 de...
Open Data Structures (in C++)
There are plenty of books that teach introductory data structures. Some of them are very good. Most of them cost money, and the vast majority of computer science undergraduate students will shell out at least some cash on a data structures book. Open Data Structures (in C++) - The goal of this project is to free undergraduate computer science stud...
Agile Processes in Software Engineering and Extreme Programming
This book constitutes the proceedings of the 18th International Conference on Agile Software Development, XP 2017, held in Cologne, Germany, in May 2017. The 14 full and 6 short papers presented in this volume were carefully reviewed and selected from 46 submissions. They were organized in topical sections named: improving agile processes; agile i...
Intelligent Human Computer Interaction
This book constitutes the thoroughly refereed proceedings of the 9th International Conference on Intelligent Human Computer Interaction, IHCI 2017, held in Evry, France, in December 2017. The 15 papers presented together with three invited papers were carefully reviewed and selected from 25 submissions. The conference is forum for the presentation...
Fundamentals of C++ Programming
Bjarne Stroustrup of AT&T Bell Labs created C++ in the mid 1980s. C++ is an extension of the programming language C, a product of AT&T Bell Labs from the early 1970s. C was developed to write the Unix operating system, and C is widely used for systems-level software and embedded systems development. C++ initially provided object-oriented...