Optimizing C++
Optimizing C++
Optimizing C++ by Harriet Gecks
Global Media | 2009 | ISBN: 9380168489 | 84 pages | PDF | 11 MB
The main reason to choose C++ as the software implementation language, instead of simpler or higher-level languages, is the fact that this language allows to build complex software that is more efficient than that built using other programming languages. Please note that this language does not guarantee automatically to build efficient software, but it only allows it. Actually, when the same program is written sloppily in C++ and in higherlevel languages, typically the C++ version is just as efficient as the one developed in other languages.
Though, a good C++ programmer, by following guide-lines learned from
expert programmers, from its own experience, or from this book, is able, in
the first place, to write software that is already rather efficient since the first
cut, and then to optimize the resulting program, that is to improve
substantially the performance of the program by replacing some language
features with equivalent but faster features. Such optimization requires, first,
that the software source is written in a sufficiently modular way, to isolate
the performance critical parts, and then to use tools, libraries, knowledge,
and time, to change those parts in a way to increase the speed of the
resulting software.
Nowadays, many optimizing replacements are already performed by
compilers, and then they are no more programmers' burden. Though, present
compilers are not able to perform many other optimizations. This book
explains just such optimizations that can be performed by the programmers
but not by all present compilers.
This book is for persons that already know how to use the C++ language,
and that want to use it to develop high quality application software or
software libraries.
Almost all the optimization techniques presented are platform independent,
and therefore there will be few references to specific operating systems,
processor architectures, or compilers. Though, some of the presented
techniques come out to be ineffective or not applicable in some
combinations of operating system/processor/compiler.