Lyngby: Technical University of Denmark, 2019. — 175 p.
This manual is for
advanced programmers and software developers who want to make their software
faster. It is assumed that the reader has a good knowledge of the C++ programming language and a basic understanding of how compilers work. This manual is based mainly on my study of how compilers and microprocessors work. The recommendations are based on the x86 family of microprocessors from Intel, AMD and VIA including the 64-bit versions. The x86 processors are used in the most common platforms with Windows, Linux, BSD, and Mac OS X operating systems, though these operating systems can also be used with other microprocessors. Many of the advices may apply to
other platforms and other compiled programming languages as well.
Choosing the optimal platform.
Finding the biggest time consumers.
Performance and usability.
Choosing the optimal algorithm.
Development process.
The efficiency of different C++ constructs.
Optimizations in the compiler.
Optimizing memory access.
Multithreading.
Out of order execution.
Using vector operations.
Making critical code in multiple versions for different instruction sets.
Specific optimization topics.
Metaprogramming.
Testing speed.
Optimization in embedded systems.
Overview of compiler options.
Literature.
Copyright notice.
Last updated:
August 15, 2019.A4 format