The optimization process involves identifying bottlenecks in applications, then using techniques to remove them.
There are a number of steps in the optimization process:
take performance readings from your application
analyze the readings to locate the bottleneck
identify the types of optimization that are appropriate
select and apply an optimization
take performance readings to ensure the optimization works.
The steps are shown in Figure 3.1.
The optimization process is likely to reveal a series of different bottlenecks, so you might have to go through the process a number of times to remove them all. See Bottlenecks move between processors.