As the title suggests, the aim of this book is to help the reader optimize performance and footprint of software. Regardless of whether the reader is a software architect, an implementer, or even a project leader, this book serves as a tutorial to help the reader acquire or enhance the following essential skills:
-
Analyzing where and when in the development process problems tend to arise
-
Recognizing pitfalls of standard design and programming techniques
-
Improving C/C++ programming skills
-
Gaining detailed technical insight into programming techniques
-
Learning useful solutions and when to use them
These skills form the basis for creating efficient software. This book guides even beginning programmers into using the advanced techniques offered here for writing better software. More experienced programmers can get going right away with the advanced topics and will also find this book to be a helpful repository of all the do's and don'ts they have to continually keep ahead of. The many hints, insights, and examples given on the development process will also be of use to project leaders and architects.
This book starts with several chapters on optimization theory and then introduces technical subject matter and examples with increasing complexity. This means that beginning programmers can use this book as a tutorial to guide them into optimizing techniques, and more experienced programmers can go through to the more complex subjects at a faster pace. Readers not directly involved with actual program implementation, such as project leaders or architects, can still benefit from familiarizing themselves with the concepts discussed in the first part of the book and several "pitfall" and "tips" sections of later chapters. The many examples of problems and solutions actually encountered in the field, which are used throughout this book, will be useful to anyone with software-related interests.