Optimizing C++
A book about improving program performance




This book is for intermediate C++ programmers (i.e. studying C++ for at least one year) who want to improve the performance of the software they develop.


This book contains guidelines and advices on how to write efficient software using the C++ language. Software correctness and maintainability are taken into account, but are not the primary concerns of the guidelines.

Most of the guidelines presented are not platform specific, and so are applicable to every processor, to every compiler, and to every operating system; the few platform specific advices try to cover most platforms.

Table of Contents

  1. Introduction
  2. Optimization life cycle
  3. Writing efficient code
    1. Performance improving features
    2. Performance worsening features
    3. Constructions and destructions
    4. Allocations and deallocations
    5. Memory access
    6. Thread usage
  4. General optimization techniques
    1. Input/Output
    2. Memoization
    3. Sorting
    4. Other techniques
  5. Code optimization
    1. Allocations and deallocations
    2. Run-time support
    3. Instruction count
    4. Constructions and destructions
    5. Pipeline
    6. Memory access
    7. Faster operations
    8. Compile time optimization
  6. Tools
  7. Further reading

Guidelines for editors