Introduction: Why Optimize?

Nowadays, software is virtually everywhere. Though you might initially think only of PCs and industrial computer systems when talking about software, applications are much more widespread. Consider washing machines, electric razors, thermostats, microwave ovens, cars, TVs, monitors and so on. Obviously these examples span many different kinds of architectures and use a variety of microprocessors. Different optimization techniques for performance and footprint size are needed here.

Even an examination of those writing today's software reveals much diversity. There is the generation of software implementers who were schooled specifically in writing software—that is, doing requirements analysis, design, and implementation. There are also those who taught themselves to write software, starting perhaps as hobbyists. And more and more we see people from different disciplines switching to software writing. This means that it is no longer a fair assumption that all programmers have, in essence, a technical background.

C/C++ programming courses and books give an excellent introduction to the world of C/C++ programming. Basically accessible for all ages and disciplines, they make it possible for anyone to write a working C/C++ program. However, standard techniques have many pitfalls and inefficiencies to avoid when actively developing software—be it commercially or as a hobby. Without completely understanding the consequences of programming decisions on a technical level, implementers unwillingly compromise the speed and size of the software they write.

The basis for an efficient program is laid long before any actual code is written, when the requirements and design are made and the hardware target is chosen. And even when the software is eventually written, a simple matter of syntax might be all that separates those who produce optimal executable code from those who do not. If you know what to write, you can easily optimize your code to run many times more efficiently. Efficiency can be increased even further with specific programming techniques, differing in level of skill required from the programmer.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset