Database Reference
In-Depth Information
Chapter 1
Performance Problems
Too often, optimization begins when an application's development is already finished. This is unfortunate because
it implies that performance is not as important as other crucial requirements of the application. Performance is
not merely optional, though; it is a key property of an application. Not only does poor performance jeopardize
the acceptance of an application, it usually leads to a lower return on investment because of lower productivity of
those using it. In fact, as shown in several IBM studies from the early 1980s, there is a close relationship between
performance and user productivity. The studies showed a one-to-one decrease in user think time and error rates as
system transaction rates increased. This was attributed to a user's loss of attention because of longer wait times. In
addition, poorly performing applications lead to higher costs for software, hardware, and maintenance. For these
reasons, this chapter discusses why it is important to plan performance, which are the most common design mistakes
that lead to sub-optimal performance, and how to know when an application is experiencing performance problems.
Then, the chapter covers how to approach performance problems when they occur.
Do You Need to Plan Performance?
In software engineering, different models are used to manage development projects. Whether the model used is
a sequential life cycle like a waterfall model or an iterative life cycle like the one used with agile methodologies,
an application goes through a number of common phases (see Figure 1-1 ). These phases may occur once (in the
waterfall model) or several times (in the iterative model) in development projects.
Integration and
Acceptance
Testing
Requirements
Analysis
Analysis and
Design
Coding and
Unit Testing
Figure 1-1. Essential phases in application development
If you think carefully about the tasks to carry out for each of these phases, you may notice that performance is
inherent to each of them. In spite of this, real development teams quite often forget about performance, at least until
performance problems arise. At that point, it may be too late. Therefore, the following sections cover what you should
not forget, from a performance point of view, the next time you are developing an application.
 
Search WWH ::




Custom Search