This book covers methods that can be used to increase the speed of programs via optimisation. Typical mistakes made by programmers that lessen the performance of the system are discussed along with easily implemented solutions. Detailed descriptions of the devices and mechanisms of interaction between the computer components effective ways of programming and a technique for optimising programs are provided. Programmers also will learn how to effectively implement in a high-level language programming methods that are usually done in the assembler. Particular attention is given to the RAM and cache subsystems. The working principles of RAM and the way in which it is coupled with the processor as well as descriptions of programming methods that allow programmers to over clock the memory to reach maximum performance are included.It is oriented toward application programmers with some experience in CC programming we well as toward system programmers with knowledge of the assembly language. However the optimisation techniques described here are not bound to any high-level programming language. Thus knowledge of C is required only for understanding the source code provided in this book. This book also will be useful to hardware specialists and technicians especially those who build and fine-tune computers. It provides detailed descriptions of the hardware operating principles and discusses the bottlenecks of the most common hardware components.